我正在尝试首先从使用Facebook帐户登录的用户获取朋友列表。我没跟好这篇文章:How to retrieve Facebook friend's information with Python-Social-auth and Django
每当我调用应该检索facebook朋友的视图时,我都会设置并清空朋友。理想情况下,我想检索Facebook的朋友,并在旁边有一个邀请按钮,邀请用户的朋友注册Web应用程序。
这就是我在views.py中的内容:
social_user = request.user.social_auth.filter(provider='facebook',).first()
if social_user:
url = u'https://graph.facebook.com/{0}/' \
u'friends?fields=id,name,location,picture' \
u'&access_token={1}'.format(
social_user.uid,
social_user.extra_data['access_token'],
)
request2 = urllib2.Request(url)
friends = json.loads(urllib2.urlopen(request2).read()).get('data')
return render_to_response('friends/friends.html', {'user': request.user, 'friends':friends})
答案 0 :(得分:3)
自从Graph API 2.0+以来,您只能获得使用您的应用程序的朋友。您发布的链接显示了在v1.0中已完成的操作,该链接已不再可用。
https://developers.facebook.com/docs/graph-api/reference/v2.2/user/friends
- 需要具有user_friends权限的用户访问令牌才能查看当前此人的朋友。
- 这只会返回使用(通过Facebook登录)申请的应用的任何朋友。
- 如果此人的朋友拒绝了user_friends权限,该朋友将不会出现在此人的朋友列表中。
因此,如果没有朋友使用过您的应用程序且未授予user_friends
,则列表将为空。
也适用于邀请朋友https://developers.facebook.com/docs/graph-api/reference/v2.2/user/invitable_friends
Invitable Friends API仅适用于归类为Games的应用,其中也有Canvas存在。此API在v1.0中不可用。它可以被手机游戏调用,只要它们也有Canvas存在。
执行此操作的唯一方法是https://developers.facebook.com/docs/sharing/reference/send-dialog