2011-02-06 144 views
0

我有以下步骤在OAuth过程完成:
1)请求令牌
2)授权令牌
3)接收的PIN号码
OAuth访问令牌请求失败(NSErrorFailingURLStringKey)

什么我不能无法开始工作就是使用我收到的PIN码获取访问令牌。它总是击中我的accessTokenTicket:didFailWithError选择器。

这里有一个是越来越传递给它的URL:
http://www.formspring.me/oauth/access_token?oauth_token=TOKEN_KEY_HERE&oauth_verifier=PIN_HERE

这里是一个的被调用的代码:

- (void)successfulAuthorizationWithPin:(NSString *)pin { 
    NSLog(@"successfulAuthorizationWithPin:%@", pin);<br> 
    OAMutableURLRequest *request;<br> 
    OADataFetcher *fetcher; 

    NSURL *url = [NSURL URLWithString:kOAuthAccessTokenURL]; 

    request = [[[OAMutableURLRequest alloc] initWithURL:url 
               consumer:self.consumer 
                token:self.accessToken 
                realm:nil 
             signatureProvider:nil] autorelease]; 

    OARequestParameter *p0 = [[OARequestParameter alloc] initWithName:@"oauth_token" value:self.accessToken.key]; 
    OARequestParameter *p1 = [[OARequestParameter alloc] initWithName:@"oauth_verifier" 
                   value:pin]; 

    NSArray *params = [NSArray arrayWithObjects:p0, p1, nil]; 
    [request setParameters:params]; 
    [request prepare]; 

    NSLog(@"%@", request.URL); 

    fetcher = [[[OADataFetcher alloc] init] autorelease]; 

    [fetcher fetchDataWithRequest:request 
         delegate:self 
       didFinishSelector:@selector(accessTokenTicket:didFinishWithData:) 
        didFailSelector:@selector(accessTokenTicket:didFailWithError:)]; 

    [p0 release]; 
    [p1 release]; 
} 

而且didFail方法(只是错误的NSLog)产生这个错误:

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x6160c20 {NSErrorFailingURLKey=http://www.formspring.me/oauth/access_token?oauth_token=TOKEN_KEY_HERE&oauth_verifier=PIN_HERE, NSErrorFailingURLStringKey=http://www.formspring.me/oauth/access_token?oauth_token=TOKEN_KEY_HERE&oauth_verifier=PIN_HERE, NSUnderlyingError=0x61321f0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)"}

我的网址格式不对,或提供的参数错误或不够?

谢谢!
John

回答

3

您是否检查生成的oauth标记是否正确?我会建议从那里开始。 Here's是检查您的OAuth令牌的好资源。

如果存在认证错误,则显示消息。通过Netflix Oauth验证生成URL并在浏览器上运行。看看它是否加载。