【问题标题】:Django invite friends from social accountDjango从社交账户邀请朋友
【发布时间】:2013-08-08 18:18:23
【问题描述】:

我正在使用 social_auth API 来使用社交帐户登录。是否有可能通过社交身份验证中的 facebook、twitter、linkedin 邀请朋友。或任何其他方式从社交帐户邀请朋友。请分享您的想法。

【问题讨论】:

  • 是的,但是,这不是 django-social-auth 所做的部分。邀请工作流程因社交网络而异,因此 AFAIK 无法进行通用的“来自社交身份验证帐户的邀请”,您需要为 facebook、twitter 等提供单独的代码路径。请参阅 stackoverflow.com/questions/8864557/…

标签: 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

【讨论】:

    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2020-04-01
    相关资源
    最近更新 更多