我想使用twitter API,但在使用django social auth登录后,我对如何访问API,获取TimeLine,RT等感到迷茫。
在使用Django社交Auth进行身份验证后,有没有人可以提供另一个我可以用来访问流媒体,时间线等的推特库?
我正在检查tweepy但如果我不需要使用tweepy auth方法,我就看不懂如何使用它。
答案 0 :(得分:4)
This example from the Django-social-auth docs显示了您的需求:
>>> from pprint import pprint
>>> from social_auth.models import UserSocialAuth
>>> instance = UserSocialAuth.objects.filter(provider='twitter').get(...)
>>> pprint(instance.tokens)
{u'oauth_token': u'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
u'_token_secret': u'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'}
UserSocialAuth模型将自动存储您需要的访问令牌。您可以通过tokens
属性访问它们。
希望有所帮助。
答案 1 :(得分:2)
您需要从与用户关联的UserSocialAuth实例获取令牌:
try:
instance = UserSocialAuth.objects.filter(user=request.user).get()
except ObjectDoesNotExist:
return redirect(getattr(settings,'LOGIN_URL','/login/twitter/'))
检索实例后,获取密钥:
oauth_access_token=(instance.tokens).get('oauth_token')
oauth_access_secret=(instance.tokens).get('oauth_token_secret')
使用令牌和秘密,您现在可以使用您选择的包连接到Twitter。
答案 2 :(得分:1)
当用户授予您对Twitter的应用访问权限时,您将获得访问令牌&访问令牌秘密。将其保存在您的数据库中。您可以使用它来访问API。
示例位于:https://github.com/tweepy/tweepy/blob/master/examples/oauth.py