【问题标题】:Django invite friends from social accountDjango从社交账户邀请朋友
【发布时间】:2013-08-08 18:18:23
【问题描述】:
我正在使用 social_auth API 来使用社交帐户登录。是否有可能通过社交身份验证中的 facebook、twitter、linkedin 邀请朋友。或任何其他方式从社交帐户邀请朋友。请分享您的想法。
【问题讨论】:
标签:
python
django
python-2.7
django-models
django-views
【解决方案1】:
扩展@adamkg 的评论:
通过 social_auth 注册用户后,您可以通过调用 UserSocialAuth 类的 get_social_auth_for_user 方法从他们的社交提供者(通常是头像、id 和用户名等基本信息)获取存储的数据。
一些提供者根据this setting存储不同的额外数据,您可以使用custom pipeline step扩展这些数据。举个例子,看看这个related question。
此外,所有提供程序都存储令牌和 uid,因此您可以随时以用户的身份请求数据。
因此,要让 facebook 用户朋友出现在您的视野中,您可以这样做:
social_data = UserSocialAuth.get_social_auth_for_user(request.user)
if social_data.provider == 'facebook': # get facebook friends
auth_tokens = social_data.tokens['access_token']
graph = facebook.GraphAPI(auth_tokens)
friends = graph.get_connections("me", "friends")
# now do something with friends ...
在上面的示例中,我使用了facebook,这是我在网上找到的第一个 facebook 图形客户端:facebook-sdk,也可以使用 on pypi