我正在尝试使用Twitter OAuth,我的POST
请求失败,出现了401
(Invalid OAuth Request
)错误。
例如,如果我想发布一个新的状态更新,我将使用以下参数向https://twitter.com/statuses/update.json
发送一个HTTP POST
请求-
status=Testing&oauth_version=1.0&oauth_token=xxx&
oauth_nonce=xxx&oauth_timestamp=xxx&oauth_signature=xxx&
oauth_consumer_key=xxx&in_reply_to=xxx&oauth_signature_method=HMAC-SHA1`
我的GET
请求都工作正常。我可以在邮件列表中看到,很多人都有相同的问题,但我在任何地方都找不到解决方案。
我正在使用oauth.py
Python库。
很可能,签名无效。必须遵循OAuth规范来生成签名(规范化参数、URLencoding和cosumerSecret&;oauthScret)。稍后再谈。。。。。。
确保应用程序访问类型为读写。 在应用程序设置页(例如http://twitter.com/apps/edit/12345)上有一个单选按钮字段,如下所示:
默认访问类型:读写/只读
如果选中“只读”,则状态更新API将返回401。
我刚刚用Java从头开始实现了TwitterOAuthAPI。获取和发布请求工作正常。您可以使用此页http://www.hueniverse.com/hueniverse/2008/10/beginners-gui-1.html检查签名和HTTP头。只需输入密钥和令牌并检查输出。twitter的工作原理似乎与本文描述的完全一样。注意空格和UTF-8符号,例如Java将空格编码为“+”,但OAuth需要%20
相关问题 更多 >
编程相关推荐