У меня странная проблема с API Graph Facebook.
Моя цель - получить определенные рейтинги страниц, чтобы отобразить их на веб-сайте.
Я использую JavaScript SDK и следовал всем указаниям документации, касающимся токена доступа к странице.
Вот моя кнопка входа в Facebook для авторизации моего приложения под текущей учетной записью пользователя (в данном случае это мое) с правильной ролью администратора для страницы:
<fb:login-button id="fb-login-btn" scope="manage_pages,pages_show_list" onlogin="checkLoginState();">
Затем я получаю все страницы пользователя с помощью вызова API / me / accounts:
FB.api('/me/accounts', function(response) {
if(response && !response.errors) {
const selectList = document.getElementById('fb-page-list');
// Populate the list
response.data.forEach(page => {
var option = document.createElement("option");
option.value = JSON.stringify({id: page.id, access_token: page.access_token});
option.text = page.name;
selectList.appendChild(option);
});
}
});
Таким образом, когда клиент выберет имя страницы, он получит правильный токен доступа к странице, чтобы сделать вызов API для конкретной страницы после.
Тогда последним шагом является вызов рейтинга страницы:
FB.api(
'/'+ page.id + '/ratings?access_token='+ page.access_token +'&limit=10?fields=reviewer{id,name,picture},rating}',
function(response) {
console.log(response);
}
);
Итак, когда я выполняю этот запрос в Graph API Explorer (который предоставляется интерфейсом разработчика Facebook), он отлично работает. Я получаю свои оценки как:
Graph API Explorer
Когда я пытаюсь в браузере, я также получаю свои оценки, но только некоторые из полей по умолчанию (то есть созданный_текст, обзор_текст, рейтинг).
Поле рецензента является полем по умолчанию. Итак, я попытался выполнить запрос без каких-либо параметров поля, и он действует так же.
Первоначально я думал, что речь идет о разрешениях, но в документации говорится, что требуется только 'manage_pages'.
Как мне решить эту проблему?