当前位置:  开发笔记 > 编程语言 > 正文

Twitter API + OAuth:无法发送状态更新,获得401

如何解决《TwitterAPI+OAuth:无法发送状态更新,获得401》经验,为你挑选了2个好方法。

我正在尝试使用Twitter的API和OAuth发送状态更新(新推文).我正在使用Shannon Whitley .NET代码示例http://www.voiceoftech.com/swhitley/?p=681(在Twitter API文档中推荐).我可以使用OAuth读取(GET),但是当我尝试通过http://twitter.com/statuses/update.xml(使用POST)发送状态更新时,它会返回一个包含以下XML的401:



  /statuses/update.xml
  Read-only application cannot POST

我发誓,我已经建立了我的应用程序使用读取和写入的Twitter的授权页面(HTTP://twitter.com/oauth/authorize)甚至说:"通过应用TweeVerbs.com(发展),希望有能力访问并在Twitter上更新您的数据."

但它仍然说"只读应用程序无法发布".WTF!?

我用谷歌搜索了这个错误信息,直到我脸色发青.我找到了一个地方,说要添加查询字符串paremeter oauth_access_type =写入重定向URL,该URL进入我已经完成的Twitter授权页面,但它仍然给了我401.


如果有帮助,这里是根据OAuth工作流程发送回来的数据:

请求授权令牌:

http://twitter.com/oauth/request_token?oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q&oauth_nonce = 2790042&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1244567068&oauth_version = 1.0&oauth_signature = KzxcXN%2bQ0AJoAJ%2flQfzs8SLjC%2fQ%3d

生成的授权重定向URL:

HTTP://twitter.com/oauth/authorize的oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio&oauth_access_type =写

授权屏幕消息: "应用程序TweeVerbs.com(开发)希望能够在Twitter上访问和更新您的数据.此应用程序计划在将来使用Twitter登录您.如果您想要连接到Sironfoot以外的帐户."

获取访问令牌:

HTTP://twitter.com/oauth/access_token oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q&oauth_nonce = 2016804&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1244567166&组oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio&oauth_version = 1.0&oauth_signature =%2bEVQUxUPLT%2B%2bkfaG0Vq1YJZXcAw%3D

状态更新API调用: URL - HTTP://twitter.com/statuses/update.xml POST数据 - oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q&oauth_nonce = 5707692&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1244567268&组oauth_token = 19130957-nb89DjZhjCAzcbHUa96yRWHqlQFQIJ0AKyXpqnHt1&oauth_version = 1.0&状态=的HelloWorld&oauth_signature = WQA%2bWY0IxveeSJ7G3Ewy3whh1sE%3D



1> Sunday Ironf..:

Dunno问题是什么,但我在Twitter上删除了我的应用程序注册(你必须在Twitter上注册应用程序以获取OAuth密钥等),然后重新创建它.现在它工作正常.很奇怪,可能是Twitter搞砸的问题.

我也在使用Tweetsharp(http://tweetsharp.com/),强烈推荐它,它有一个不错的流畅API.注意:切换到Tweetsharp不是修复,我已经切换并遇到了同样的问题,直到我删除并在Twitter上重新创建应用程序注册.


我只需要在我的应用程序的"详细信息"页面上单击"重新创建我的访问令牌"按钮.(发布此答案时,不确定该按钮是否存在.)

2> abraham..:

如果您在应用程序设置为"只读访问"模式时授权您的应用程序访问您的Twitter帐户,并且在将应用程序设置更改为"读取和写入访问权限"后您收到"只读应用程序无法发布"错误,那么您必须撤销对https://twitter.com/settings/connections上的应用程序的访问权限,然后重新授权.在您撤销之前,"只读"access_token往往是粘性的.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有