2014-01-17 41 views
0

我正在django 1.6中工作。我的应用需要社交认证,所以我使用的是django-social-auth app。我正在尝试列出我的Google帐户中的所有朋友。我遵循以下网址中所示的步骤:http://c2journal.com/2013/01/24/social-logins-with-django/Google Oauth2提供商未实施

为了列出我使用的所有我的朋友django-social-friends-finder。我创建了一个谷歌API项目和和密钥GOOGLE_OAUTH2_CLIENT_IDGOOGLE_OAUTH2_CLIENT_SECRET在我的settings.py文件中使用的客户端ID。我为redirect_uri参数提供了我的本地主机ip

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

回答

0

从未使用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' 
] 

而且这个片段展示了如何检索您的好友列表:

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']