vimeo o通过iPhone应用程序进行身份验证

时间:2011-05-12 06:05:38

标签: ipad authentication vimeo

我有一个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

2 个答案:

答案 0 :(得分:0)

您需要在请求中提供自己的回调,在iOS中看起来像myapp://...并注册myapp处理程序,以便在重定向浏览器时iOS会将控制权交还给您的应用。我假设你正在使用OAuth并从你的应用程序启动浏览器以进行用户交互。或者,您可以使用WebView(不是OAuth推荐的),然后在WebView委托中,您可以捕获重定向并解析access toke

答案 1 :(得分:0)

终于搞定了。基本字符串和oAuth标头字符串格式存在问题。