我有一个应用程序,使用此应用程序,用户可以sign-up via twitter
我已设置读取,写入和直接消息的权限,因此当用户注册我的项目时他授权我,我可以代表他发帖。在注册期间,我也得到了他的auth-token and oauth-token secret
。
但我不知道如何代表该用户发布推文。我尝试在https://api.twitter.com/1.1/statuses/update.json提交一份表格,其中包括状态,我的应用密钥和密码,用户oauth_token和秘密,但作为回应我总是得到这个
{"errors":[{"message":"Bad Authentication data","code":215}]}
我正在使用python-social-auth通过twitter注册。
任何帮助将不胜感激。 感谢
答案 0 :(得分:4)
您需要使用您的请求指定用户access_token
,这与Twitter知道哪个是当前经过身份验证的用户的方式相同。使用python-social-auth
即可:
# given a user instance (and assuming Django ORM)
social = user.social_auth.get(provider='twitter')
backend = social.get_backend()
form_data = {
'status': 'The new twitter status goes here'
}
response = backend.get_json(
'https://api.twitter.com/1.1/statuses/update.json',
method='POST',
auth=backend.oauth_auth(social.extra_data['access_token']),
data=form_data
)