У меня была похожая проблема. Несколько решений для stackoverflow в основном объясняли проблему отсутствием необходимых разрешений. Проверьте необходимые разрешения с помощью Graph API explorer или документация (в таблицах есть столбец с разрешениями для каждого поля).
Решение Джонатана фактически дало мне подсказку о том, где я ошибся. У меня была другая проблема, когда я дважды проверил все права доступа, установленные для панели управления моего приложения, которые были правильными, но при входе в систему я указал область с набором разрешений, которые, казалось, переопределяли параметры приложения. :( Мне это показалось странным, но я исправил это, включив другие разрешения в область действия, и моя проблема была решена.
Эффективный способ проверить, устанавливаются ли права с помощью кода, - использовать следующий код:
FB.api({ method: 'fql.query', query: 'SELECT user_status,friends_status,user_photos,friends_photos,user_location,friends_location FROM permissions WHERE uid=me()' }, function(resp) {
for(var key in resp[0]) {
if(resp[0][key] === "1")
console.log(key+' is granted');
else
console.log(key+' is not granted');
}
});
P.S. Также убедитесь, что если вы изменили разрешения на панели инструментов приложения, то выйдите из приложения и снова войдите в систему перед тестированием.
Я потратил впустую более 3 часов, пытаясь решить эту проблему, и документация по Facebook мне не помогла, поэтому надеюсь, что это кому-нибудь поможет!