问题描述
|
我正在使用oAuth来获取Google的“纬度”范围内未注册的已安装应用的请求令牌,我正在将响应字符串作为
signature_invalid
base_string:GET&https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthGetRequestToken&oauth_consumer_key%3Danonymous%26oauth_nonce%3D1D759072-DB2B-4E21-AA23-67CADF98C14A%26oauth_signature_method%3%3DHMACDD1D 3Dhttps%253A%252F%252Fwww.googleapis.com%252Fauth%252Flatitude%26xoauth_displayname%3DTaj%2520Vivanta
我用来获取请求令牌的代码如下
OAConsumer * consumer = [[OAConsumer alloc] initWithKey:@ \“ anonymous \” secret:@ \“ anonymous \”];
OAMutableURLRequest * request = [[[[OAMutableURLRequest alloc] initWithURL:url消费者:消费者令牌:令牌领域:nil signatureProvider:nil]自动发布];
如果(!request)返回;
[请求setOAuthParameterName:@ \“ scope \” withValue:[@ \“ https://www.googleapis.com/auth/latitude \” stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[请求setOAuthParameterName:@ \“ xoauth_displayname \” withValue:@ \“ Taj Vivanta \”];
[request setHTTPMethod:@ \“ GET \”];
OADataFetcher * fetcher = [[[[OADataFetcher alloc] init] autorelease];
[fetcher fetchDataWithRequest:请求委托人:self didFinishSelector:成功didFailSelector:失败];
请帮我解决这个问题,谢谢
解决方法
正如google Document明确建议的那样,scope和xoauth_displayname参数应该在URL中,但是在上面的代码中,我将这些参数放在了请求标头中。