Vimeo整合到ios oauth 2.0

我们已经用oauth 1.0集成了vimeo。 现在它不工作,必须使用oauth 2.0。 我find了https://github.com/nxtbgthng/OAuth2Client 。 但不明白如何使用它的Vimeo。

我们之前的代码是

OADataFetcher *fetcher; consumer = [[OAConsumer alloc]initWithKey:[dicVimeoInfo objectForKey:@"ConsumerKey"] secret:[dicVimeoInfo objectForKey:@"ConsumerSecret"]]; NSURL *vimeoURL=[NSURL URLWithString:kVimeoRestURL]; OAToken *token=[[OAToken alloc]initWithKey:[dicVimeoInfo objectForKey:@"AccessToken"] secret:[dicVimeoInfo objectForKey:@"AccessTokenSecret"]]; request = [[OAMutableURLRequest alloc] initWithURL:vimeoURL consumer:consumer token:token realm:nil signatureProvider:nil]; OARequestParameter* formatparameter = [OARequestParameter requestParameter:@"format" value:@"json"]; OARequestParameter* methodParameter = [OARequestParameter requestParameter:@"method" value:@"vimeo.channels.getAll"]; NSArray *params = [NSArray arrayWithObjects: formatparameter, methodParameter, nil]; [request setParameters:params]; [request setHTTPMethod:@"GET"]; [request prepare]; fetcher = [[OADataFetcher alloc] init]; [fetcher fetchDataWithRequest:request delegate:self didFinishSelector:@selector(requestTokenTicket:didFinishWithData:) didFailSelector:@selector(requestTokenTicket:didFailWithError:)]; 

现在Vimeo已经转向oauth 2.0。 我已经创build了应用程序,并find“客户端标识符”,“请求令牌URL”,“授权URL”,“访问令牌URL”。 现在我不知道该怎么去。 早些时候在oauth 1.0中,我获得了“访问令牌”和“令牌秘密”。

编辑

我试过这个。 我有单个用户的访问令牌。 vimeo文件说,我们发送像“ curl -H "Authorization: bearer <OAUTH_TOKEN>" https://api.vimeo.com标题curl -H "Authorization: bearer <OAUTH_TOKEN>" https://api.vimeo.com ”我怎么能做到这一点。

  consumer = [[OAConsumer alloc]initWithKey:@"456a8852ebd72760de4d2206bab3dad0db35a66b" secret:@"eb74abb5d1f38ad0bd570d24e4d1d0ee3a447534"]; NSURL *url = [NSURL URLWithString:@"http://vimeo.com/api/rest/v2"]; request = [[OAMutableURLRequest alloc] initWithURL:url consumer:consumer token:nil realm:nil signatureProvider:nil]; [request setParameters: [NSArray arrayWithObjects: [OARequestParameter requestParameter:@"method" value:@"vimeo.channels.getAll"],[OARequestParameter requestParameter:@"format" value:@"json"], nil]]; [request addValue:[NSString stringWithFormat:@"bearer %@",@"a75a63c0e0121b0704a4c98d6e209eb2"] forHTTPHeaderField:@"Authorization"]; [request setHTTPMethod:@"POST"]; OADataFetcher *fetcher = [[OADataFetcher alloc] init]; [fetcher fetchDataWithRequest:request delegate:self didFinishSelector:@selector(requestTokenTicket:didFinishWithData:) didFailSelector:nil]; 

编辑我试图没有客户端密钥和秘密也。

 NSURL *aUrl = [NSURL URLWithString: @"http://vimeo.com/api/rest/v2?format=json&method=vimeo.channels.getAll"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0]; [request addValue:[NSString stringWithFormat:@"bearer %@",@"7c7139ec99fa9e09f77dd2512780c301"] forHTTPHeaderField:@"Authorization"]; [request setHTTPMethod:@"GET"]; NSError *error = nil; NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error: &error]; NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error]; NSLog(@"Response : %@", JSONDictionary); 

输出是一样的

 Response : { err = { code = 401; expl = "The consumer key passed was not valid."; msg = "Invalid consumer key"; }; "generated_in" = "0.0020"; stat = fail; } 

谢谢。

您将参数作为JSON对象的一部分提供,但client_credentialsstream实际上定义为使用Content-Type设置为application/x-www-form-urlencoded的普通POST。 因此,Vimeo不会在其令牌端点识别出有效的请求。 检查规范中的示例: http : //tools.ietf.org/html/rfc6749#section-4.4.2

您使用的url都是旧API的一部分。 所有使用oauth2的请求都通过https://api.vimeo.com子域名&#x3002; 您可以通过https://developer.vimeo.com/api/authentication阅读更多内&#x5BB9;