Ошибка 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))";
Требуются следующие требования:
- Ваш друг должен использовать приложение.
- Разрешение от приложения read_stream, publish_stream, publish_checkins.