【问题标题】:Google Oauth2 provider not implementedGoogle Oauth2 提供程序未实施
【发布时间】:2014-01-17 06:30:16
【问题描述】:

我正在使用 django 1.6。我的应用需要社交身份验证,所以我使用 django-social-auth 应用。我正在尝试列出我的 google 帐户中的所有朋友。我按照网址中指示的步骤进行操作:http://c2journal.com/2013/01/24/social-logins-with-django/

为了列出我使用的所有朋友 django-social-friends-finder。我创建了一个 google api 项目,并在我的设置中的 GOOGLE_OAUTH2_CLIENT_IDGOOGLE_OAUTH2_CLIENT_SECRET 中使用了 client idsecret key。 .py 文件。我为 redirect_uri 参数提供了我的 localhost ip

我使用我的电子邮件成功验证了身份,但无法列出我的朋友列表。当我在终端中调试时,错误消息显示为 'provider: %s is not implemented'。我搜索了很多,但找不到解决方案。请帮帮我。提前致谢。

【问题讨论】:

    标签: django google-oauth django-socialauth


    【解决方案1】:

    从未使用过django-social-friends-finder,但我猜它有时会调用https://www.googleapis.com/plus/v1/people/me/people/visible 来检索您的朋友列表。但是要访问该 API,您需要指定正确的范围,这样您的访问令牌就有权限。为此,请在 django-social-auth 中定义此设置:

    GOOGLE_OAUTH_EXTRA_SCOPE = [
        'https://www.googleapis.com/auth/plus.login'
    ]
    

    此 sn-p 还显示了如何检索您的朋友列表:

    import requests
    
    user = User.objects.get(...)
    social = user.social_auth.get(provider='google-oauth2')
    response = requests.get(
        'https://www.googleapis.com/plus/v1/people/me/people/visible',
        params={'access_token': social.extra_data['access_token']}
    )
    friends = response.json()['items']
    

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 2015-05-07
      • 2012-07-27
      • 2013-03-30
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2011-06-21
      相关资源
      最近更新 更多