python - 如何使用 Python-Social-auth 和 Django 检索 Facebook 好友的信息

标签 python django facebook facebook-graph-api python-social-auth

如何使用 Python-Social-auth 和 Django 检索 Facebook 好友的信息?我已经检索了个人资料信息并对用户进行了身份验证,但我想获取有关他们 friend 的更多信息并邀请他们使用我的应用程序。 谢谢!

最佳答案

您可以使用 Facebook API 来完成。首先,您需要获取您的 Facebook 应用程序的 token (FACEBOOK_APP_ACCESS_TOKEN) https://developers.facebook.com/tools/accesstoken/ 或来自 social_user.extra_data['access_token']

然后使用这个 token ,您可以发送您需要的请求,例如,这段代码获取经过身份验证的用户的所有 friend 的 ID、姓名、位置、图片:

social_user = request.user.social_auth.filter(
    provider='facebook',
).first()
if social_user:
    url = u'https://graph.facebook.com/{0}/' \
          u'friends?fields=id,name,location,picture' \
          u'&access_token={1}'.format(
              social_user.uid,
              social_user.extra_data['access_token'],
          )
    request = urllib2.Request(url)
    friends = json.loads(urllib2.urlopen(request).read()).get('data')
    for friend in friends:
        # do something

根据您想要获取的字段,您可以在此处设置权限: https://developers.facebook.com/apps/ -> 您的应用 -> 应用详情 -> 应用中心权限

或在 settings.py 中设置您的权限:

SOCIAL_AUTH_FACEBOOK_SCOPE = [
    'email',
    'user_friends',
    'friends_location',
]

关于python - 如何使用 Python-Social-auth 和 Django 检索 Facebook 好友的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22548223/

相关文章:

python - 如何在 Python Scrapy 中限制每个站点的关注页面数

xml - PyXB 和 python 框架

django - 在 Django 中创建对象时增加整数

android - Facebook Android SDK 注销监听器

python - 如何在 Pandas 中每 2 行执行加权平均?

python - 分析标签集的最佳方法?

python - 如何将 awdark 主题安装到 ttk python 中

django - 如何成功将 Django 连接到 Azure Redis 缓存?

Facebook 使用 Graph API 发布号召性用语按钮

android - facebook 在 android studio 中与最新的 Facebook Sdk 集成