如何使用Django social auth登录后访问Twitter API?

时间:2012-04-23 13:09:46

标签: django twitter django-socialauth

我想使用twitter API,但在使用django social auth登录后,我对如何访问API,获取TimeLine,RT等感到迷茫。

在使用Django社交Auth进行身份验证后,有没有人可以提供另一个我可以用来访问流媒体,时间线等的推特库?

我正在检查tweepy但如果我不需要使用tweepy auth方法,我就看不懂如何使用它。

3 个答案:

答案 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