Показать всех друзей на Facebook или текущего пользователя в django - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу отобразить всех друзей текущего пользователя в списке (а затем также проверить, какие из них есть на сайте, а какие нет). Я использовал 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 возвращает мне толькоколичество друзей текущего пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...