Twitter rest api request_token Issue

问题描述:

我试图为我的应用程序获取oauth标记。我跟着this tutorial但我得到的错误是这样的:Twitter rest api request_token Issue

{ 
    "errors": [ 
    { 
     "code": 32, 
     "message": "Could not authenticate you." 
    } 
    ] 
} 

这里是我的签名基本字符串:

POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Drntwttr%3A%2F%2Ftwitter&oauth_consumer_key%3DzvWr0ySiGLedBLvFM4CZgW6ut&oauth_nonce%3D144692544640700&oauth_signature_method%3DHMAC-SHA1&oauth_timestamp%3D1446921846&oauth_version%3D1.0 

这里是我的Authorization头值:

OAuth oauth_callback="rntwttr%3A%2F%2Ftwitter", oauth_consumer_key="zvWr0ySiGLedBLvFM4CZgW6ut", oauth_nonce="144692544640700", oauth_signature="%2BHGWye0I4QeBbHWYiJnXhHJGPn4%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1446921846", oauth_version="1.0" 

我加密我与我的消费者密钥和秘密签名的基本字符串:

var key = 'myConsumerKey&myConsumerSecret'; 
var signature = CryptoJS.HmacSHA1(signature_without_sha, key); 
var _signature = signature.toString(CryptoJS.enc.Base64); 

这里有什么问题?回调URL:rntwttr://twitter

您已经构建了您的签名密钥不正确验证您的基本字符串。所以签名密钥只是

consumer_secret&token_secret 

在获得请求令牌的情况下,你没有一个令牌密钥尚未: 签名密钥是通过结合消费者的秘密和与符号之间令牌机密形成消费者机密后跟一个&符号:

consumer_secret& 

在上面的代码中,您将消费者密钥与消费者密钥相结合,导致授权错误。

+0

ahhhh!谢谢 ! –

您的签名基本字符串的参数字符串的一部分是不正确percent encoded(即&应该%26)根据twitter docs about creating signatures

可以使用this website

+0

没有任何变化。 –