FB.api
является асинхронным, вам нужно дождаться обратного вызова:
FB.api('/' + page_id[i] + '?fields=id,access_token', (response) => {
FB.api('/' + response.id + '/feed', 'post', {
message: body,
link: video_link,
access_token: response.access_token
}, (response) => {
if (!response || response.error) {
console.log(response);
} else {
console.log('Post ID: ' + response.id);
}
});
});
Единственные разрешения, которые вам нужны, manage_pages
и publish_pages
. Я также использовал функции стрелок (потому что ES6 здесь).
Существует еще одна большая проблема с циклом, вы используете переменную «i» в вызовах API - поскольку обратный вызов является асинхронным, он не будет таким же, если он фактически обращается к функции обратного вызова. Вы все равно не должны массово размещать в цикле, убедитесь, что он работает на одной странице.