У меня есть приложение, которое находится в режиме разработки. Моя личная учетная запись Facebook является администратором для приложения. Насколько я понимаю, если эта учетная запись авторизует приложение через OAuth, оно должно иметь все разрешения. Однако, когда я получаю токен, используя эту учетную запись, он имеет только разрешение на общедоступный профиль. Я также заметил, что после извлечения токена, преобразования его в долгосрочный токен и добавления дополнительных разрешений через проводник API новые разрешения применяются к долгосрочному токену (даже если в проводник API загружен новый токен). консоль).
Правильно ли я понимаю, что роли администратора, разработчика и тестера должны иметь все разрешения? Что-то еще, что я должен сделать, чтобы токен имел все разрешения? Является ли добавление разрешений через API Explorer единственным способом сделать это?
Вот шаги, которые я выполняю, и то, что происходит на каждом этапе:
1) Я использую Facebook Login через Javascript SDK (с оберткой ngx-facebook), инициализированный идентификатором приложения моего приложения, находящегося в режиме разработки.
2) Я вхожу с учетной записью Facebook, которая является администратором приложения.
3) Создается краткосрочный токен, который я конвертирую в долгосрочный токен с помощью конечной точки / oauth / access_token.
4) Я храню долгосрочный токен для будущего использования.
5) Я пытаюсь использовать долгосрочный токен, чтобы получить сообщения для страницы, принадлежащей учетной записи администратора, и получить следующий ответ:
"error":{"error":{"message":"(#10) To use \'Page Public Content Access\', your use of this endpoint must be reviewed and approved by Facebook. To submit this \'Page Public Content Access\' feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review."
6) Я проверяю разрешения для пользователя, используя долгосрочный токен и идентификатор пользователя, и получаю следующий ответ. Это объясняет ответ выше, но я думал, что роли администратора, разработчика и тестера должны были иметь доступ ко всем разрешениям.
{
"data": [
{
"permission": "public_profile",
"status": "granted"
}
]
}
7) Я захожу в консоль обозревателя API, вошедшую в систему как администратор учетной записи разработчика, в которой находится мое приложение, выбираю разрешение manage_pages и нажимаю «Получить токен доступа». Я получаю новый токен обратно.
8) Я игнорирую этот токен и использую оригинальный токен. Теперь он может успешно получать сообщения для страницы.
9) Я проверяю исходные разрешения токена и узнаю, что процесс в проводнике API добавил разрешения к исходному долгосрочному токену:
{
"data": [
{
"permission": "manage_pages",
"status": "granted"
},
{
"permission": "pages_show_list",
"status": "granted"
},
{
"permission": "public_profile",
"status": "granted"
}
]
}