Я хочу отобразить всех друзей текущего пользователя в списке (а затем также проверить, какие из них есть на сайте, а какие нет). Я использовал python-social-auth (Django) для входа в систему.То, что я получаю, это пустой список.Вот основной код
SOCIAL_AUTH_FACEBOOK_SCOPE = [
'email',
'user_friends',
]
Функция отображения.
@login_required(login_url='/accounts/login/')
def allfriends(request):
social_user = request.user.social_auth.filter(
provider='facebook'
).first() # we only need the data from the facebook obviously we only are using the facebook to get it.
#
oururl = u'https://graph.facebook.com/{0}/' \
u'friends?fields=id,name,picture' \
u'&access_token={1}'.format(
social_user.uid,
social_user.extra_data['access_token'],
)
request = urllib.request.Request(oururl)
friendslist = json.loads(urllib.request.urlopen(request).read()).get('data')
return render(request, 'description/friends_list.html', {friendslist})
Ошибка, которую они мне показывают:
TypeError at /
unhashable type: 'list'
Показывает, чтосписок друзей пуст: localvariables
friendslist
[]
oururl
'https://graph.facebook.com/520966375368471/friends?fields=id,name,picture&access_token=EAANTv4ZA4iGgBAKveRjMivl8124j6JpuACFIZCkQqwYVNwT5b9J0xTEQQmpdpgZBbOJZBszvFLIs4a9Y2ZAcBfTqzLGkFhq1WlX25o1vF0C3q6brhuJazREXZAuz1lZAPZCb44QF0DYSd95GGWxgRqNEZAcv6QgZB2f6rxCUuSHYfDXwZDZD'
request
<urllib.request.Request object at 0x7f4851ff2da0>
social_user
<UserSocialAuth: RishabhJain>
Я не могу понять, что я делаю неправильно Вы можете запросить больше кода, если хотите.Если я не использую эту friendlist
штуку, все работает нормально.
при вводе нашего хера в Chrome. Вот что я получаю
{
"data": [
],
"summary": {
"total_count": 473
}
}
Это означает, что Facebook возвращает мне толькоколичество друзей текущего пользователя.