twitter分享问题(三)——Required oauth_verifier parameter not provided

     使用shareKit做twitter分享,遇到如下错误:


       “There was a problem requesting access from Twitter”,打个断点,跟踪到“SHKOAuthSharer.m”的这个函数:

 

- (void)tokenAccessTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data   


       看下打印的信息:

 

 

TwitterShareDemo[7111:c07] tokenAccessTicket Response Body: <?xml version="1.0" encoding="UTF-8"?>  
<hash>  
  <request>/oauth/access_token</request>  
  <error>Required oauth_verifier parameter not provided</error>  
</hash> 

      即参数“oauth_verifier”丢失,我去twitter查了下,说是在api 1.0的时候,授权请求时这个参数可有可无,但是到了api 1.0a的时候是必须强制带上的,故需要添加这个参数,修改位置:“SHKOAuthSharer.m”,如下

 

 

- (void)tokenAccess:(BOOL)refresh
{
	if (!refresh)
		[[SHKActivityIndicator currentIndicator] displayActivity:SHKLocalizedString(@"Authenticating...")];
	
    NSString *oauth_verifier = [self.authorizeResponseQueryVars objectForKey:@"oauth_verifier"];
	NSString *urlStr = [@"https://api.twitter.com/oauth/access_token" stringByAppendingFormat:@"?oauth_verifier=%@",oauth_verifier];
    NSURL *url = [NSURL URLWithString:urlStr];
    OAMutableURLRequest *oRequest = [[OAMutableURLRequest alloc] initWithURL:url
                                                                    consumer:consumer
																	   token:(refresh ? accessToken : requestToken)
                                                                       realm:nil   // our service provider doesn't specify a realm
                                                           signatureProvider:signatureProvider]; // use the default method, HMAC-SHA1
    
//    OAMutableURLRequest *oRequest = [[OAMutableURLRequest alloc] initWithURL:accessURL
//                                                                   consumer:consumer
//																	   token:(refresh ? accessToken : requestToken)
//                                                                      realm:nil   // our service provider doesn't specify a realm
//                                                          signatureProvider:signatureProvider]; // use the default method, HMAC-SHA1
	
    [oRequest setHTTPMethod:@"POST"];
	
	[self tokenAccessModifyRequest:oRequest];
	
    OAAsynchronousDataFetcher *fetcher = [OAAsynchronousDataFetcher asynchronousFetcherWithRequest:oRequest
                         delegate:self
                didFinishSelector:@selector(tokenAccessTicket:didFinishWithData:)
                  didFailSelector:@selector(tokenAccessTicket:didFailWithError:)];
	[fetcher start];
	[oRequest release];
}


   完工~

 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值