Я создаю бэкэнд Rails для приложения iOS. Серверная часть должна взаимодействовать с Facebook, чтобы собирать и использовать друзей каждого пользователя на Facebook.
Но запрос «друзья» Facebook возвращается пустым.
По сути, я делаю следующий запрос:
curl https://graph.facebook.com/[FILTERED_USER_ID_FOR_APP]?fields=friends&access_token=[FILTERED]&debug=all
Я просмотрел множество сообщений StackOverflow об этом (этот и этот и этот и другие), но не нашли идентичной проблемы или подходящего решения.
Вроде права выставил правильно. Как в приложении Rails, так и при аутентификации пользователя через приложение для iPhone я установил user_friends
в качестве одного из разрешений, и, фактически, когда кто-то регистрируется сейчас, он просит их подтвердить разрешение друзей пользователя.
Но когда я на самом деле запрашиваю их друзей, я получаю ответ, говорящий мне, что друзей есть много, но не возвращающий ни одного из них. Ответ ниже предназначен для пользователя, у которого определенно есть друзья в приложении.
{
"data":[],
"summary": {
"total_count": 419
},
"__debug__": {
"messages": [
{
"link": "https:\/\/developers.facebook.com\/docs\/apps\/versions\/",
"message": "No API version was specified. This request defaulted to version v2.7.","type":"warning"
},
{
"link": "https:\/\/developers.facebook.com\/docs\/apps\/changelog#v2_0",
"message": "Only friends who installed this app are returned in API v2.0 and higher. total_count in summary represents the total number of friends, including those who haven't installed the app.",
"type": "info"
}
]
}
}
Что меня озадачивает, так это то, что а) идентификатор приложения/идентификатор пользователя/токены доступа кажутся правильными, потому что я могу получить основную информацию о профиле, и б) я делаю not получить сообщение об ошибке, сообщающее мне, что запрос не имеет надлежащих разрешений. Если я сделаю аналогичный запрос без разрешений в обозревателе, он вернет соответствующее примечание об отладке:
{
"message": "The field 'friends' is only accessible on the User object after the user grants the 'user_friends' permission.",
"type": "warning"
}
Если я сделаю это с правильными разрешениями в проводнике, он вернет список друзей (в массиве data
).
Таким образом, не похоже на проблему с разрешениями, но запрос возвращает пустой список друзей. Любые идеи?