Страницы фида в Facebook, где я являюсь администратором
Я знаю, что этот вопрос часто задавался, но я пытаюсь сделать пост на странице Facebook с 2 дня безрезультатно.
Вот что у меня есть:
- Приложение с APP_ID и APP_SECRET
- Страница facebook с идентификатором
- Мой личный идентификатор
Я хочу программно разместить фид на странице и не знаю, как все это работает..
Я пытался запросить через
который дает мне токен доступа, но когда я пытаюсь
https://graph.facebook.com// feed? access_token = TOKEN
и это не работает.
Я также попытался сделать это с запросом моего access_token, но для этого требуется redirect_uri, и дан токен, это новый URL и требуются разрешения на действие (принять). Это не то, что я хочу.
Я просто хочу опубликовать на странице, где я являюсь администратором..
Заранее спасибо.
1 ответ
Существует 4 типа токенов доступа:
- Токен доступа пользователя (Включите действия на странице.)
- Токен доступа к приложению (измените и прочитайте настройки приложения. Его также можно использовать для публикации действий Open Graph.)
- Токен доступа к странице (специфично для действий на странице.)
- Клиентский токен (редко используется)
Что вы сделали, так это получили токен доступа к приложению, который не имел ничего общего со страницей.
Таким образом, чтобы публиковать страницы фида Facebook как администратор, вы должны использовать токен доступа пользователя или токен доступа к странице.
Токен доступа пользователя:
Вам нужно будет пройти диалог авторизации, чтобы получить свой токен доступа:
Убедитесь, что вы предоставили права manage_pages и status_update, как показано в параметре perms = выше. Причина может быть найдена здесь: почему публикация на странице Facebook приводит к тому, что "пользователь не авторизовал приложение"
Затем вы отправляете HTTP-запрос POST (например, message=hello) на свою страницу по https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_USER_ACCESS_TOKEN
Токен доступа к странице:
Вы должны использовать токен доступа пользователя, чтобы получить токен доступа к странице через вызовы API:
https://graph.facebook.com/me/accounts?access_token=YOUR_USER_ACCESS_TOKEN (получить токен всех страниц)
https://graph.facebook.com/YOUR_PAGE_ID?fields=access_token&access_token=YOUR_USER_ACCESS_TOKEN (Получить конкретный токен страницы по идентификатору страницы)
Затем вы отправляете HTTP-запрос POST (например, message=hello) на свою страницу тремя способами:
- https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
- https://graph.facebook.com/me/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
- https://graph.facebook.com/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
Обновить:
Я предлагаю вам вручную предоставить токен доступа пользователя (например, появится диалоговое окно "Вход в систему / авторизация", и пользователю нужно будет вручную щелкнуть, чтобы принять запрос на разрешение APP, вы не можете программно очистить веб-страницы для выполнения этого первого шага, поскольку это нарушает TOS Платформа Facebook), а затем продлить его на срок действия (истек 2 месяца) через https://graph.facebook.com/oauth/access_token?client_id=my_app_id&client_secret=my_app_secret&grant_type=fb_exchange_token&fb_exchange_token=User_Access_Token
Теперь у вас есть действующий токен доступа пользователя, а затем вызовите https://graph.facebook.com/me/accounts?access_token=LONG_LIVE_USER_ACCESS_TOKEN чтобы получить НИКОГДА не просроченный токен доступа к странице. Вы можете отладить токен доступа к странице по адресу https://developers.facebook.com/tools/debug/accesstoken?q=YOUR_PAGE_ACCESS_TOKEN
Как вы видите, срок действия истекает никогда:
Документация:
- https://developers.facebook.com/docs/facebook-login/access-tokens/
- https://developers.facebook.com/docs/graph-api/reference/app (нет такой вещи, чтобы публиковать на странице как администратор)