Страницы фида в Facebook, где я являюсь администратором

Я знаю, что этот вопрос часто задавался, но я пытаюсь сделать пост на странице Facebook с 2 дня безрезультатно.

Вот что у меня есть:

  • Приложение с APP_ID и APP_SECRET
  • Страница facebook с идентификатором
  • Мой личный идентификатор

Я хочу программно разместить фид на странице и не знаю, как все это работает..

Я пытался запросить через

https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

который дает мне токен доступа, но когда я пытаюсь

https://graph.facebook.com// feed? access_token = TOKEN

и это не работает.

Я также попытался сделать это с запросом моего access_token, но для этого требуется redirect_uri, и дан токен, это новый URL и требуются разрешения на действие (принять). Это не то, что я хочу.

Я просто хочу опубликовать на странице, где я являюсь администратором..

Заранее спасибо.

1 ответ

Решение

Существует 4 типа токенов доступа:

  1. Токен доступа пользователя (Включите действия на странице.)
  2. Токен доступа к приложению (измените и прочитайте настройки приложения. Его также можно использовать для публикации действий Open Graph.)
  3. Токен доступа к странице (специфично для действий на странице.)
  4. Клиентский токен (редко используется)

https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

Что вы сделали, так это получили токен доступа к приложению, который не имел ничего общего со страницей.

Таким образом, чтобы публиковать страницы фида Facebook как администратор, вы должны использовать токен доступа пользователя или токен доступа к странице.

Токен доступа пользователя:

Вам нужно будет пройти диалог авторизации, чтобы получить свой токен доступа:

https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=145634995501895&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html%3Fdisplay%3Dpage&response_type=token&fbconnect=1&perms=manage_pages%2Cstatus_update

Убедитесь, что вы предоставили права 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:

  1. https://graph.facebook.com/me/accounts?access_token=YOUR_USER_ACCESS_TOKEN (получить токен всех страниц)

  2. https://graph.facebook.com/YOUR_PAGE_ID?fields=access_token&access_token=YOUR_USER_ACCESS_TOKEN (Получить конкретный токен страницы по идентификатору страницы)

Затем вы отправляете HTTP-запрос POST (например, message=hello) на свою страницу тремя способами:

  1. https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
  2. https://graph.facebook.com/me/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
  3. 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

Как вы видите, срок действия истекает никогда:

Документация:

  1. https://developers.facebook.com/docs/facebook-login/access-tokens/
  2. https://developers.facebook.com/docs/graph-api/reference/app (нет такой вещи, чтобы публиковать на странице как администратор)
Другие вопросы по тегам