Django Social Auth:从 linkedin、twitter 和 facebook 获取电子邮件

2024-05-08

我正在使用 Django Social_auth api 通过社交帐户登录。在这里,我想从社交帐户获取电子邮件地址并将其存储在我的数据库表中。可以从帐户中检索名字和姓氏,但无法检索电子邮件地址、个人资料图片。请分享您从社交帐户检索这些详细信息的想法。


Twitter 不会公开电子邮件,要检索 Facebook 电子邮件,您需要定义FACEBOOK_EXTENDED_PERMISSIONS = ['email'],LinkedIn 电子邮件会自动检索。电子邮件存储在用户模型下email属性。

可以通过定义以下设置来存储个人资料图片:

TWITTER_EXTRA_DATA = [('profile_image_url', 'profile_picture')]
LINKEDIN_EXTRA_DATA = [('picture-url', 'profile_picture')]

Facebook 个人资料图片可通过 API 访问,并且不会在身份验证过程中发送。您可以定义管道来存储它,如下所示:

from django.utils import simplejson
from social_auth.utils import dsa_urlopen

def facebook_profile_picture(backend, user, social_user, details, response, *args, **kwargs):
    if backend.name != 'facebook':
        return
    url = 'https://graph.facebook.com/{0}/picture?redirect=false&access_token={1}'
    response = dsa_urlopen(url.format(social_user.extra_data['id'], social_user.extra_data['access_token'])
    data = simplejson.load(response)
    social_user.extra_data['profile_picture'] = data['data']['url']
    social_user.save()

将其添加到管道设置的底部(检查管道文档:http://django-social-auth.readthedocs.org/en/latest/pipeline.html http://django-social-auth.readthedocs.org/en/latest/pipeline.html)。该代码尚未经过测试,因此请稍微使用一下。

然后你可以访问个人资料图片:

social = user.social_auth.get(provider='facebook')  # or twitter or linkedin
social.extra_data['profile_picture']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django Social Auth:从 linkedin、twitter 和 facebook 获取电子邮件 的相关文章

随机推荐

  • Django,无法分配 None,不允许空值

    我有这个模型 py import datetime from django db import models from tinymce import models as tinymce models from filebrowser fie
  • 如何将 MouseDown 事件放入样式中?

    这有效 XAML
  • 如何返回以列名作为第一行的 T-SQL 查询

    我正在编写一个 SSIS 包来将数据从 SQL Server 2012 数据库输出到 CSV为客户归档 要求是第一行是列名称 下面是我为数据流任务中的源编写的查询 问题是 它总是将列名返回为最后一行 而不是第一行 为什么 我该如何实现这一目
  • ByteBuddy 变基、合成类型和 OSGi

    我为 byte buddy 开发了以下拦截器 public class SecurityInterceptor RuntimeType public static Object intercept SuperCall Callable su
  • 带有 Angular2+ 的 dc.js 图表

    有人将 dc js 与 Angular2 应用程序一起使用过吗 任何帮助或指示将不胜感激 我能够使我的应用程序在正常的 html java 脚本上运行 现在我需要在 Angular 2 应用程序中实现相同的功能 Edit 几周后 我有了更好
  • 在同一项目上使用 Eclipse 和 NetBeans

    Eclipse 是一个非常棒的编辑器 我更喜欢使用它 但是缺少 Eclipse 的 GUI 设计工具 另一方面 NetBeans 非常适合 GUI 设计 在同一项目中使用 NetBeans 进行 GUI 设计和 Eclipse 进行其他所有
  • 使用 JSON.NET 反序列化一些 JSON

    我对 JSON 非常陌生 我需要解析 API 提供的一些内容 谷歌快速搜索出现了JSON NET http james newtonking com pages json net aspx 所以我现在尝试使用它将此 JSON 解析为列表对象
  • 处理带有两个片段的操作栏

    我有一个包含两个片段的布局 两个片段都有自己的操作栏 每个操作栏都有自己的操作项和菜单 当我的应用程序处于横向模式并且两个片段都显示在屏幕上时 看起来框架正在选择在 右侧 或第二个片段 显示操作栏 这意味着左侧的片段 第一个片段 缺少其操作
  • Rails 和 Mysql 的毫秒数

    使用 Rails Mysql 时存储时间 以毫秒为单位 的最佳方式是什么 我将使用小数和composed of 以便能够将该值作为Ruby 时间进行操作 有人有更好的主意吗 自从提出这个问题以来 已经过去了好几年了 这是更新的解决方案 ht
  • 如何:SQL 还是 NOSQL?

    我还没有遇到过这个问题 但这就是我的想法 非常肤浅和简单化恕我直言 如果您有键值类型的存储 并且所有访问都是键查找 请使用 NOSQL 解决方案 如果您想要基于值 和子值 进行查找或者有一些更复杂的东西 例如联接 您会选择关系解决方案 事务
  • 改造中的 SocketTimeoutException

    我在尝试着POST向服务器请求获取数据但有时会发生SocketTimeoutException I used Ok3Client解决它 但我面临同样的异常 我该如何解决它 我的代码如下 public void getNormalLogin
  • 如何将 rubocop 与 Rake 集成?

    rubocop https github com bbatsov rubocop是 Ruby 的代码风格检查器 与 rubocop 类似的工具 Cane 可以与 Rake 集成 https github com square cane in
  • 让 hashchange 事件在所有浏览器(包括 IE7)中工作

    我有一些代码 由另一位开发人员编写 在 WordPress 内部进行 AJAX 页面加载 例如 没有页面重新加载 当您单击导航项时 AJAX 会刷新主要内容区域 我的问题是它在 IE7 中被破坏了 我不知道从哪里开始调试 最初的开场白是 v
  • 需要帮助通过批处理文件添加注册表项

    我正在尝试通过cmd添加以下注册表项 我无法让其他用户能够使用以下命令添加此注册表项regedit exe s Location Project reg HKEY CURRENT USER Software Autodesk Fabrica
  • 如何从 Python 脚本捕获 Curl 的输出

    我想使用curl查找有关网页的信息 但在Python中 到目前为止我有这个 os system curl head www google com 如果我运行它 它会打印出 HTTP 1 1 200 OK Date Sun 15 Apr 20
  • 更改内置颜色

    我只是想问如何更改 Angular 2 材质中的这些内置颜色 它在 ng2 material 文档中指定 color primary accent warn 如何更改这些调色板中的颜色 或者甚至如何改变文本的蓝色 我已经尝试过这个但行不通
  • 用圆形雷达数学方法表示点

    我正在编写一个简单的应用程序 它可以向您显示您周围的朋友 但不是在法线地图中 而是在像 UI 这样的真正圆形雷达上 https i stack imgur com Au3IP png https i stack imgur com Au3I
  • 如何在 MVC 5 中设置自定义 ClaimsPrincipal?

    我创建了一个自定义主体类 public class FacebookPrincipal ClaimsPrincipal public JObject Data get set 我想用它 当用户登录时 我尝试设置 var fbP new Fa
  • Powershell“特殊”开关参数

    我有下面的powershell功能 Function Test Param Parameter string Text default text Write Host Text Text 我希望能够像下面这样调用这个函数 测试 文本 应该在
  • Django Social Auth:从 linkedin、twitter 和 facebook 获取电子邮件

    我正在使用 Django Social auth api 通过社交帐户登录 在这里 我想从社交帐户获取电子邮件地址并将其存储在我的数据库表中 可以从帐户中检索名字和姓氏 但无法检索电子邮件地址 个人资料图片 请分享您从社交帐户检索这些详细信