首页 文章

如何制作API请求以获取Objective-C中的私人Vimeo视频?

提问于
浏览
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?我被困在这里了 . 你的小帮助将不胜感激 . 谢谢 .

1 回答

  • 0

    Vimeo实现OAuth 2.0承载令牌 . 你应该像这样使用它:

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

    它详细描述here

相关问题