我尝试编写一个简单的程序来使用 Twython(版本 3)更新我的 Twitter 状态。我可以搜索公共(public)时间线,但当我尝试更新状态时,它返回“Twitter API 返回 401(未经授权)”。
from twython import Twython
APP_KEY = 'xxx'
APP_SECRET = 'xxx'
OAUTH_TOKEN = 'xxx'
OAUTH_TOKEN_SECRET = 'xxx'
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
twitter.update_status(status='See how easy using Twython is!')
有人知道这里出了什么问题吗?
最佳答案
您需要验证用户身份
twitter = Twython(APP_KEY, APP_SECRET)
auth = twitter.get_authentication_tokens(callback_url='http://mysite.com/callback')
存储来自 auth 变量的 oauth token ,并将它们存储在用户返回时可以检索它们的地方;
OAUTH_TOKEN = auth['oauth_token']
OAUTH_TOKEN_SECRET = auth['oauth_token_secret']
如何存储它取决于您的框架
将用户重定向到身份验证网址auth['auth_url']
并且在回调中,您可以检索 oauth session
从 url 参数中检索 oauth_verifier
将新 token 存储在 session 中或任何地方
twitter = Twython(APP_KEY, APP_SECRET,
OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
twitter_authroized=twitter.get_authorized_tokens(oauth_verifier)
OAUTH_TOKEN = twitter_authroized['oauth_token']
OAUTH_TOKEN_SECERT = twitter_authroized['oauth_token_secret']
从现在开始使用这些新的 OAUTH token 来调用 twitter(而不是旧的)
阅读https://twython.readthedocs.org/en/latest/usage/starting_out.html#authentication获取此信息
https://github.com/ryanmcgrath/twython-django 是 twitter 的 django 项目。使用它作为指导
关于python - 我无法让 Twython 更新我的 Twitter 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18459514/