IOS twitter登录获取request_token错误

时间:2014-11-05 08:08:02

标签: ios login oauth twitter-oauth

我试图从https://api.twitter.com/oauth/request_token获取request_token。但我总是遇到以下错误。

  

"无法验证oauth签名和令牌"

以下是我的signature_base:

POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%3A%2F%2Fwww.google.com%26oauth_consumer_key%3DydxYUl45Mleo5LNyoExnAF4mY%26oauth_nonce%3D9C918901-EF8A-4B84-BDF5-B7E754C46397%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1415174195%26oauth_version%3D1.0

生成的auth标头是:

{
    Authorization = "OAuth oauth_version=\"1.0\", 
    oauth_nonce=\"9C918901-EF8A-4B84-BDF5-B7E754C46397\", 
    oauth_signature_method=\"HMAC-SHA1\", 
    oauth_consumer_key=\"ydxYUl45Mleo5LNyoExnAF4mY\", 
    oauth_timestamp=\"1415174195\", 
    oauth_callback=\"http://www.google.com\",
    oauth_signature=\"j6k3CY4Fr40SKAWiG%2B5%2BwkErdYc%3D\"";
}

我用我的密钥验证了签名,这是正确的。真的无法弄清楚问题出在哪里......

一个线索是,当oauth_callback完全没有使用时,我能够获得请求令牌......请帮忙!

谢谢, 利

修改: 如果我不使用oauth_callback,我可以获取请求令牌,并使用我在dev twitter网站中设置的回调。但是,我无法将其设置为我的应用的网址方案,因为它不是有效的网址...

2 个答案:

答案 0 :(得分:0)

同样的问题我也在苦苦挣扎。 帮助的方法如下。

由于错误和错误的文档,使用Twitter进行身份验证是非常不舒服的。我将挑衅地推荐您,使用以下两种方法之一:Github library,其记录良好且易于实施。或者使用iOS Social框架编写自己的日志记录。

答案 1 :(得分:0)

您没有正确编码oauth_callback网址。

在签名库中,它应编码为:

oauth_callback%3Dhttp%253A%252F%252Fwww.google.com

然后在Authorization标题中:

oauth_callback="http%3A%2F%2Fwww.google.com"