获取“无法通过OAuth进行身份验证”。从Twitter尝试POST时

时间:2011-07-29 06:06:40

标签: twitter oauth twitter-oauth

我已成功通过OAuth流程获取访问令牌。

但是,当我尝试对/statuses/update.json端点运行POST时,我收到“无法通过OAuth进行身份验证。”

我正在使用我的消费者秘密验证回来的令牌签名,我不明白还有什么。

Twitter论坛也没有帮助。

任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

对Twitter进行身份验证调用可能很麻烦。

确保签名基本字符串中的参数按字母顺序排序。

拿这个:

oauth_consumer_key={consumerkey}&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_token={token}&oauth_version=1.0&status={tweet text}

填写值,在Base64中对其进行编码,然后将它们组合在一起:

POST&{base64 encoded url}&{base64 encoded base string}

这将是您需要签名的字符串(没有括号)。 (在这种情况下,网址为https://api.twitter.com/1.1/statuses/update.json

签名密钥需要像这样构建:

{consumer secret}&{token secret}

签名是HMACSHA1哈希,然后是base64编码。

然后你需要把它放在Authorization标题中:

OAuth oauth_consumer_key="{consumer key}",oauth_nonce="{nonce}",oauth_signature="{signature}",oauth_signature_method="HMAC-SHA1",oauth_timestamp="{timestamp}",oauth_token="{token}",oauth_version="1.0"

最后将status=your tweet text作为发布数据放入您的请求中。

我希望这会有所帮助。