2

我正在开发一个 iOS 应用程序来播放私人 Vimeo 视频。私人视频被赋予从 Vimeo 网站隐藏视频的隐私权并赋予域,以便这些视频只会在我的网站上购买和播放。我有 Vimeo PRO 帐户。

我正在使用 VIMNetworking SDK 并使用在https://developer.vimeo.com/apps创建应用程序的客户端详细信息在 didFinishLaunchingWithOptions() 中进行身份验证。

现在我必须发出 API 请求以获取直接视频网址。我不知道如何实现这一点。Vimeo 不提供objective-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?我被困在这里了。您的一点帮助将不胜感激。谢谢你。

4

1 回答 1

0

Vimeo 实现了 OAuth 2.0 不记名令牌。你应该像这样使用它:

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

这里有详细描述

于 2017-03-19T18:08:08.837 回答