2016-07-07 77 views
2

我正在开发iOS应用程序来播放私人Vimeo视频。私人视频被授予隐私从Vimeo网站隐藏的视频和给定域名,以便这些视频只会在我的网站上购买和播放。我有Vimeo PRO帐户。如何使API请求获取Objective-C中的私人Vimeo视频?

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

现在我必须提出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)”和“请求失败:无法接受的内容类型:应用程序/ 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?我在这里卡住了。你的小帮助将不胜感激。谢谢。

+0

描述你传递一个“客户端ID”或实际的OAuth令牌?你需要用后者签署你的请求。 –

+0

@AlfieHanssen实际上,现在我可以使用Vimeo SDK获得私人视频网址。这个SDK执行我所写的所有代码。我只需要传递客户端ID。问题是用户必须去Vimeo登录页面登录并允许我的应用访问Vimeo视频。有什么方法可以跳过它吗? –

回答

0

Vimeo实现了OAuth 2.0承载令牌。你应该使用这样的:

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

它在细节here