在Twitter上获取401 OAuth POST请求

2024-05-11 23:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Twitter OAuth,我的POST请求失败,出现了401Invalid 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.pyPython库。


Tags: httpscom参数request状态错误twitterpost
3条回答

很可能,签名无效。必须遵循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

相关问题 更多 >