Как сделать запрос API для получения частных видео Vimeo в Objective-C?

Я разрабатываю приложение для iOS для воспроизведения частных видео Vimeo. Приватным видео предоставляется конфиденциальность в виде сокрытия видео с веб-сайта Vimeo и предоставлены домены, чтобы только эти видео можно было покупать и воспроизводить на моих веб-сайтах. У меня есть учетная запись Vimeo PRO.

Я использую VIMNetworking SDK и выполняю аутентификацию в didFinishLaunchingWithOptions (), используя данные клиента, которые я получил при создании приложения на https://developer.vimeo.com/apps.

Теперь мне нужно сделать запрос API, чтобы получить прямые URL-адреса видео. Я не знаю, как этого добиться. Vimeo не предоставляет документации по объекту-c. Используя приведенный ниже код, я получаю общедоступный видеоответ, но не работаю с частными видео.

 [[VIMSession sharedSession].client requestURI:@"/videos/4378389" completionBlock:^(VIMServerResponse *response, NSError *error) {        
        id JSONObject = response.result;
        NSLog(@"JSONObject: %@", JSONObject);
    }];

Я даже пробовал этот код, чтобы получить частные видео. Но я получаю ответ.

 VIMClient *client = [[VIMClient alloc] initWithDefaultBaseURL];

    client.requestSerializer = [AFJSONRequestSerializer serializer];

    [client.requestSerializer setValue:@"application/vnd.vimeo.*+json; version=3.2" forHTTPHeaderField:@"Accept"];
     [client.requestSerializer setValue:@"my_client_id" forHTTPHeaderField:@"Authorization"];


    [client requestURI:@"https://api.vimeo.com/me/videos" completionBlock:^(VIMServerResponse *response, NSError *error)
    {

        id JSONObject = response.result;
        NSLog(@"JSONObject: %@", JSONObject);

    }];

И есть третий способ получения этих ошибок: «Запрос не выполнен: неавторизованный (401)» и «Запрос не выполнен: недопустимый тип содержимого: application / vnd.vimeo.error + json». Это длинное описание ошибки.

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSDictionary *param = @{@"response_type" : @"code", @"client_id" : @"my_cleint_id", @"redirect_uri" : @"vimeo{my_cleint_id}://auth", @"state" : @"exercise"};

[manager GET:@"https://api.vimeo.com/me/videos" parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject)
 {

     NSLog(@"Forgot Password JSON: %@",responseObject);


 }
      failure:^(AFHTTPRequestOperation *operation, NSError *error) {
          NSLog(@"Error: %@", error.description);

      }];

Мне нужно передать что-то с access_token? если да, то как получить этот access_token? Я так застрял здесь. Ваша небольшая помощь будет оценена по достоинству. Спасибо.


person Hiren Prajapati    schedule 07.07.2016    source источник
comment
Вы передаете идентификатор клиента или фактический токен OAuth? Последним вам нужно будет подписать ваши запросы.   -  person Alfie Hanssen    schedule 14.07.2016
comment
На самом деле @AlfieHanssen, теперь я могу получать частные URL-адреса видео с помощью Vimeo SDK. Этот SDK выполняет весь код, о котором я писал. Мне просто нужно передать идентификатор клиента. Проблема в том, что пользователь должен перейти на страницу входа в Vimeo, чтобы войти в систему и разрешить моему приложению доступ к видео Vimeo. Есть ли способ пропустить это?   -  person Hiren Prajapati    schedule 16.07.2016


Ответы (1)


Vimeo реализует токены носителя OAuth 2.0. Вы должны использовать это так:

[serializer setValue:@"Bearer your_token_here" forHTTPHeaderField:@"Authorization"];

Подробно это описано в здесь

person Stas    schedule 19.03.2017