2014-09-05 2 views
1

Я просто испортил API-интерфейс python для Facebook.Facebook Python API друзья paging next возвращает пустой массив

Я пытался перечислить всех своих друзей.

Вот код:

friends = graph.get_connections("me","friends") 

while(friends['data']): 
    for friend in friends['data']: 
     allfriends.append(friend['name']) 
    try: 
     friends=requests.get(friends['paging']['next']).json() 
    except KeyError: 
     print "Key Error" 

print allfriends 

Этот код просто перечисляет несколько моих друзей. Когда я пытаюсь сделать запрос на url в [paging] [next], он просто возвращает пустой массив.

Я не могу понять, где я иду не так? Следующий URL-адрес должен получить следующий набор имен из списка друзей, которые я верю.

Просьба помочь.

Спасибо

+1

Если есть больше друзей, тогда оно должно вернуть больше да. Я предполагаю, что вы используете API v2.0 или новее, что означает, что вы получите только друзей, которые предоставили пользователям права доступа к приложению, а не всем вашим друзьям. – WizKid

+0

Так что другие друзья должны предоставить разрешение, для меня просто перечислить их? – psyc0der

+0

Да, это правильно. Я бы посоветовал вам прочитать https://developers.facebook.com/docs/apps/changelog – WizKid

ответ

0

Вы можете попробовать следующее:

friends = graph.get_connections("me","friends") 

while(friends['data']): 
    try: 
     for friend in friends['data']: 
      allfriends.append(friend['name']) 
     friends=requests.get(friends['paging']['next']).json() 
    except KeyError: 
     print "Key Error" 
print allfriends 

Это лучший способ получить правильные данные через Facebook Graph.

+0

«print» Ошибка ключа «' не остановит цикл while. Вместо этого используйте инструкцию 'break' –

0
https://graph.facebook.com/v2.2/me/friends 

выше URL будет только возвращать только друзей, которые использовали (с помощью Facebook Войти) приложение, делающего запрос. Source