获得;无法通过OAuth进行身份验证。”;尝试发帖时从Twitter

获得;无法通过OAuth进行身份验证。”;尝试发帖时从Twitter,twitter,oauth,twitter-oauth,Twitter,Oauth,Twitter Oauth,我成功地通过OAuth进程获得了一个访问令牌 但是,当我尝试运行到/statuses/update.json端点的POST时,我得到一个“无法通过OAuth进行身份验证” 我在用我的消费者秘密认证后得到的令牌签名,我不知道还能是什么 推特论坛也帮不上忙 任何提示都将不胜感激。给Twitter打经过身份验证的电话可能会很痛苦 确保签名基字符串中的参数按字母顺序排列 拿这个来说: oauth_consumer_key={consumerkey}&oauth_nonce={nonce}&

我成功地通过OAuth进程获得了一个访问令牌

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

我在用我的消费者秘密认证后得到的令牌签名,我不知道还能是什么

推特论坛也帮不上忙


任何提示都将不胜感激。

给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}
{consumer secret}&{token secret}
这将是您需要签名的字符串(不带括号)。(本例中的url为)

签名密钥需要按如下方式构建:

POST&{base64 encoded url}&{base64 encoded base string}
{consumer secret}&{token secret}
签名是一个HMACSHA1哈希,然后对其进行base64编码

然后您需要将其放入授权标头中:

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=您的tweet文本
作为您请求中的发布数据


我希望这能有所帮助。

首先,用您的密钥尝试一些GET请求(例如需要身份验证的状态/主页时间线)。工作正常吗?确保你的服务器时钟与Twitter或其他著名的时间服务器同步。如果相隔超过15分钟,Twitter会说签名错误,然后失败。我也遇到了完全相同的问题(c/liboauth/maemo5)-从获得访问令牌(带有屏幕名称等)到一切都顺利-但当我打rest电话(甚至只是读取)时,我也遇到了同样的错误。。。在阅读Eran的评论时,我注意到我工作的虚拟机的时钟慢了一个小时!现在它工作了:)谢谢你,埃兰-你的评论应该是一个答案,+1。你解决了这个问题吗?就在今天,我遇到了同样的问题。