【问题标题】:How to get user's birthday from python-social-auth如何从 python-social-auth 获取用户的生日
【发布时间】:2018-04-04 23:49:06
【问题描述】:

所以我已经设置了我的 Django 应用程序,我想从 Facebook 获取生日并将其保存在管道中的某个位置。我确实请求了范围:

SOCIAL_AUTH_FACEBOOK_SCOPE = ['email','user_birthday']

类似问题的大多数答案都使用 Facebook 返回的 response 字典。但是,当我打印它时,我有这个:

{
'id': .., 
'expires': .., 
'name': .., 
'granted_scopes': ['user_birthday', 'email', 'public_profile'], 
'access_token': ..
}

我如何得到实际的生日?

【问题讨论】:

    标签: django python-social-auth


    【解决方案1】:

    现在您有了访问令牌,您可以使用它来发送获取请求:

    url = 'https://graph.facebook.com/%d?fields=birthday' % user_id
    parameters = {'access_token': TOKEN}
    r = requests.get(url, params = parameters)
    result = json.loads(r.text)
    

    【讨论】:

      【解决方案2】:

      显然您使用access_token 与 FB Graph API 进行通信。一种方法是手动发送请求,就像this other answer 说的那样。但是,我最终使用facepy 库的方式更容易:

      from facepy import GraphAPI
      
      def work_with_response(response, *args, **kwargs):
          graph = GraphAPI(response['access_token'])
          fb_data = graph.get('me?fields=birthday')
          date = fb_data['birthday']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-13
        • 2014-01-25
        • 1970-01-01
        • 2014-08-04
        • 1970-01-01
        相关资源
        最近更新 更多