我试图从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网站中设置的回调。但是,我无法将其设置为我的应用的网址方案,因为它不是有效的网址...
答案 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"