Я прочитал fb docs и написал код, чтобы опубликовать сообщение на странице "facebook", однако я получаю сообщение об ошибке, которое я не ожидаю увидеть:
(#200) The user hasn't authorized the application to perform this action
Вот что я сделал:
- Я создал приложение facebook, которое предоставляет мои
APP_ID
иAPP_SECRET
. - Я создал тестовую страницу "facebook". Обратимся к его fb id как
PAGE_ID
. - Используется OAuth для получения
USER_ACCESS_TOKEN
с областью действия "publish_actions, manage_pages" для пользователя. Я принял разрешения, запрошенные моим приложением, когда перенаправлен на страницу auth facebook. - Я сделал GET на
https://graph.facebook.com/me/accounts
с помощьюUSER_ACCESS_TOKEN
, и я возвращаю список страниц, которые я администрирую, включая тот, который я хочу отправить.
Этот блок данных для моей страницы выглядит так:
{
"data": [
{
"category": "Community",
"name": "My Generic Test Page",
"access_token": PAGE_ACCESS_TOKEN,
"id": PAGE_ID,
"perms": [
"ADMINISTER",
"EDIT_PROFILE",
"CREATE_CONTENT",
"MODERATE_CONTENT",
"CREATE_ADS",
"BASIC_ADMIN"
]
},
....
]
}
Затем я использую PAGE_ACCESS_TOKEN
, чтобы отправить сообщение на страницу:
- Я сделал POST на
https://graph.facebook.com/PAGE_ID/feed
с полемmessage
, равнымThis is a test post.
Facebook возвращает:
{
"error": {
"message": "(#200) The user hasn't authorized the application to perform this action",
"type": "OAuthException",
"code": 200
}
}
Используя отладчик токенов, я могу подтвердить, что мой PAGE_ACCESS_TOKEN
действителен и имеет области видимости: manage_pages
и publish_actions
.
Где я пропущу авторизацию приложения? Нужны ли дополнительные области? Я пропустил щелчок на экране авторизации на facebook? Есть ли настройка в приложении, которое мне не хватает? После нескольких дней отладки этого я должен быть слеп к этой проблеме.: - |