在IOS中查询Google请求令牌时,来自oAuth的Signature_invalid错误

问题描述

| 我正在使用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中,但是在上面的代码中,我将这些参数放在了请求标头中。