Ошибка HTTP 400 при доступе к списку друзей в Facebook Graph API

Когда я получаю доступ к списку моих друзей по URL https://graph.facebook.com/me/friends?access_token=... я вижу список своих друзей. Я могу сделать это и программно.

Теперь, когда я беру идентификатор любого из моих друзей и заменяю его на "я" в приведенном выше URL-адресе и вставляю URL-адрес в браузер, я могу видеть друзей моего друга. Я не могу сделать это программно, потому что это дает мне ошибку HTTP 400.

Кто-нибудь знает, почему это возможно путем вставки URL, а не программно?

2 ответа

Решение

Вы не можете получить "друзей друзей", используя API Facebook.

Например, попробуйте простой /me/friends с Graph API Explorer, он должен работать нормально. Затем возьмите один из идентификаторов и попробуйте то же самое с FRIEND_ID/friends и получите следующее:

{
  "error": {
    "message": "(#604) Can't lookup all friends of FRIEN_ID. Can only lookup for the logged in user or the logged in user's friends that are users of your app.", 
    "type": "OAuthException", 
    "code": 604
  }
}

Сама ошибка очень прямолинейна и точно объясняет, в чем проблема. А почему это переводится в код ошибки 400 для вас неясно.


редактировать

Вы также не можете видеть "друзей друзей" в браузере, причина того, что он работает для вас (вероятно), заключается в том, что пользователи, для которых вы проверяете друзей (USER_ID/friends), установили приложение, к которому у вас есть доступ Токен принадлежит, от того, как вы дошли до этого URL, я предполагаю, что приложение является "Test_console".

Как проверить? Скопируйте токен доступа с URL (USER_ID/friends? Access_token=xxxxx), перейдите в отладчик Facebook, вставьте токен в текстовое поле и нажмите "Отладка", он покажет вам информацию о приложении.

Пользователь, для которого вы его проверили, вероятно, установил это приложение, если вы проверите его для других пользователей, вы получите эту ошибку, когда попадете к пользователю, у которого это приложение не установлено.

Я надеюсь, что это проясняет это для вас.

У меня есть друзья друзей (ограничено), которые используют приложение. У меня была такая же проблема. Хотя уже очень поздно отвечать на вопрос, это кому-нибудь поможет. Вот почему отвечаю на этот вопрос.

Мы можем завести друзей друзей, которые являются пользователями приложения.

$ fb_id = идентификатор пользователя, для которого требуются друзья друзей.

Попробуйте этот FQL-запрос.

$ query = "ВЫБЕРИТЕ uid, name, work_history ОТ пользователя ГДЕ INID (ВЫБЕРИТЕ uid2 ОТ друга ГДЕ uid1 IN (ВЫБЕРИТЕ uid ОТ пользователя ГДЕ INID (ВЫБЕРИТЕ uid2 ИЗ ДРУГА ГДЕ uid1 = $fb_id) и is_app_user=1))";

Требуются следующие требования:

  1. Ваш друг должен использовать приложение.
  2. Разрешение от приложения read_stream, publish_stream, publish_checkins.
Другие вопросы по тегам