11

Python-Social-auth と Django を使用して Facebook の友達の情報を取得するにはどうすればよいですか? すでにプロファイル情報を取得してユーザーを認証していますが、友人に関する詳細情報を取得してアプリに招待したいと考えています。ありがとう!

4

2 に答える 2

13

Facebook API を使用してそれを行うことができます。まず、Facebook アプリケーションのトークンを取得する必要があります ( FACEBOOK_APP_ACCESS_TOKEN) https://developers.facebook.com/tools/accesstoken/ またはsocial_user.extra_data['access_token']

次に、このトークンを使用して、必要なリクエストを送信できます。たとえば、このコードは、認証されたユーザーのすべての友達を ID、名前、場所、写真とともに取得します。

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'],
          )
    request = urllib2.Request(url)
    friends = json.loads(urllib2.urlopen(request).read()).get('data')
    for friend in friends:
        # do something

取得したいフィールドに応じて、ここでアクセス許可を設定できます: https://developers.facebook.com/apps/ -> Your App -> App Details -> App Center Permissions

または権限を次のように設定しますsettings.py

SOCIAL_AUTH_FACEBOOK_SCOPE = [
    'email',
    'user_friends',
    'friends_location',
]
于 2014-04-01T15:31:21.737 に答える