How can I retrieve Facebook friend's information using Python-Social-auth and Django? I already retrieve a profile information and authenticate the user, but I want to get more information about their friends and invite them to my app. Thanks!
Run Your Django Project.Visit login page in the browser using localhost URL. It will look like this in the browser. Click on Log with Facebook and follow the steps. After log in, you will be redirected to the home page.
Django Social Auth is an easy way to setup social authentication/authorization. mechanism for Django projects. Crafted using base code from django-twitter-oauth_ and django-openid-auth_, it implements a common interface to define new authentication providers from. third parties.
Just some extra for the reply above. To get the token from extra_data you need to import the model with that data (took me a while to find this): from social.apps.django_app.default.models import UserSocialAuth
You can do it using Facebook API. Firstly, you need obtain the token of your Facebook application (FACEBOOK_APP_ACCESS_TOKEN
) https://developers.facebook.com/tools/accesstoken/
or from social_user.extra_data['access_token']
Then with this token you can send the requests you need, for example, this code gets all the friends of the authenticated user with their id, name, location, picture:
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
Depending on what fields you want to get you can set the permissions here: https://developers.facebook.com/apps/ -> Your App -> App Details -> App Centre Permissions
or set your permissions in settings.py
:
SOCIAL_AUTH_FACEBOOK_SCOPE = [
'email',
'user_friends',
'friends_location',
]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With