邀请Facebook好友加入网站与python社交认证

时间:2015-01-27 23:32:15

标签: python django facebook

我正在尝试首先从使用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})

1 个答案:

答案 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