我有一个iPad应用程序,需要将vimeo集成到它。我正处于将其集成到我的应用程序的初始阶段。我首先需要通过vimeo验证我的应用程序。
我已经完成了文档中的身份验证步骤,我可以通过前两个步骤:
请求令牌: http://vimeo.com/oauth/request_token
用户授权: http://vimeo.com/oauth/authorize
但是无法通过最后一步获得oauth_token和oauth_token_secret:
访问令牌: http://vimeo.com/oauth/access_token
Vimeo重定向到回调网址,而不是回到应用程序,这很好,直到我获得验证程序和授权令牌。但是一旦我使用它们来获取oauth_token和oauth_token_secret,控制台就会显示以下错误消息:
错误域= NSURLErrorDomain代码= -1012“操作无法完成。(NSURLErrorDomain错误-1012。)”UserInfo = 0x18146180 {NSErrorFailingURLKey = http://vimeo.com/oauth/access_token?oauth_token=141b4ff56c48dc5d03501297bde85ebc&oauth_verifier=land-1886924229,NSErrorFailingURLStringKey = http://vimeo.com/oauth/access_token?oauth_token=141b4ff56c48dc5d03501297bde85ebc&oauth_verifier=land-1886924229,NSUnderlyingError = 0x181483d0“操作无法完成。(kCFErrorDomainCFNetwork错误-1012。)”}
有人可以帮忙或至少提供一些指示吗?
为了进一步深入了解,我正在使用OAuthConsumer框架。下面是我们发出获取访问令牌请求的代码行:
(void)successfulAuthorizationWithToken:(NSString *)token verifier:(NSString *)verifier { 的NSLog(@ “successfulAuthorizationWithToken”); OAMutableURLRequest *请求; OADataFetcher * fetcher;
// NSURL * url = [NSURL URLWithString:@“https://api.twitter.com/oauth/access_token”]; NSURL * url = [NSURL URLWithString:@“http://vimeo.com/oauth/access_token”]; request = [[[OAMutableURLRequest alloc] initWithURL:url 消费者:self.consumer 令牌:self.accessToken 境界:无 signatureProvider:nil autorelease];
OARequestParameter * p0 = [[OARequestParameter alloc] initWithName:@“oauth_token” 值:令牌]; OARequestParameter * p1 = [[OARequestParameter alloc] initWithName:@“oauth_verifier” 值:验证]; NSArray * params = [NSArray arrayWithObjects:p0,p1,nil]; [请求setParameters:params];
fetcher = [[[OADataFetcher alloc] init] autorelease];
[fetcher fetchDataWithRequest:request 委托:自我 didFinishSelector:@selector(accessTokenTicket:didFinishWithData :) didFailSelector:@selector(accessTokenTicket:didFailWithError:)];
[p0发布]; [p1 release];
}
我也尝试过以下链接中指定的解决方案: Twitter API + OAuthConsumer.framework
它说使用[[[OAHMAC_SHA1SignatureProvider alloc] init] autorelease]作为signatureProvider。但结果是一样的。
在使用访问令牌步骤获取验证者和授权令牌后,我需要获取以下值: 组oauth_token = YourAuthorizedOauthToken&安培; oauth_token_secret = YourAuthorizedTokenSecret
答案 0 :(得分:0)
您需要在请求中提供自己的回调,在iOS中看起来像myapp://...
并注册myapp
处理程序,以便在重定向浏览器时iOS会将控制权交还给您的应用。我假设你正在使用OAuth并从你的应用程序启动浏览器以进行用户交互。或者,您可以使用WebView(不是OAuth推荐的),然后在WebView委托中,您可以捕获重定向并解析access toke
。
答案 1 :(得分:0)
终于搞定了。基本字符串和oAuth标头字符串格式存在问题。