Каковы шаги для получения долгого токена для отправки на страницу фан-сайта Facebook с сервера
У меня есть бизнес-страница в Facebook (известная как Фан-страница в народном языке Facebook).
Я хочу post to that Page
всякий раз, когда пользователь принимает определенное действие в моем приложении. Я хочу публиковать как страницу, а не пользователя (т.е. Из моей личной учетной записи). Сообщение будет отправлено с моего внешнего сервера (я использую restFB).
Я выполнил шаги авторизации моей личной учетной записи с соответствующими разрешениями manage_pages
для страницы. Я также получил токен доступа для страницы. Я даже смог опубликовать эту страницу на странице, как я хотел. Проблема заключается в том, что токен, который я получаю (через их разработчик графического разработчика), имеет истечение часа. Мне нужно, чтобы он длился намного дольше, чем навсегда.
Я просмотрел Интернет, в том числе SO для ответа, и большинство сообщений обращаются к ужасным документам FB или делают неопределенные ссылки на подключение моего внешнего приложения к приложению facebook и публикацию через него. Я попытался выполнить эту работу, но я смущен всем процессом, откровенно говоря (что такое адрес обратного вызова, например?).
Во всяком случае, мне бы хотелось увидеть пошаговые инструкции на простом английском языке на getting a long lasting access token
, который я могу использовать для публикации из одного приложения на страницу фанкойла Fan.
Пожалуйста, не обращайтесь к документации FB. Это ужасно. По крайней мере, я прошел через него.
Спасибо.
Ответы
Ответ 1
Вот два шага, которые вы можете выполнить, чтобы получить истекший токен для вашей страницы поклонника:
-
Во-первых, вам нужно получить долгоживущий токен доступа пользователя (срок действия которого истекает через 2 месяца). Чтобы получить это, сделайте следующий вызов:
GET /oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}
Подробнее здесь. Дайте мне знать, если вы обнаружите трудности с этим.
-
Получите токен доступа, который никогда не истекает для вашей страницы, используя маркер, полученный на предыдущем шаге (не обычный токен, это основное отличие здесь) -
$facebook->api("/PAGE_ID?fields=access_token");
Итак, концепция такова: для получения долговечного токена страницы вы должны использовать долгоживущий токен usrr во время вызова.
Ответ 2
@Shadowfax является полным правом.
Чтобы завершить рабочий процесс:
- Получите краткосрочный пользовательский доступ с помощью входа в facebook и с помощью разрешения
manage_pages
.
- Отправить краткосрочный пользователь access_token на ваш сервер
-
С сервера сделайте запрос @Shadowfax:
GET /oauth/access_token? grant_type=fb_exchange_token&client_id={your-app-id}& client_secret={your-app-secret}&fb_exchange_token={short-lived-user-access_token}
с хостом graph.facebook.com
и портом 443
.
Вы должны сделать этот запрос с сервера, потому что он содержит секретный ключ вашего приложения.
-
С сервера теперь вы можете запросить facebook, заменив пользователя access_token этой долгосрочной версией
-
На сервере получите страницу access_token, используя ваш long-live user access_token, либо запросив учетную запись пользователя:
GET /{user-id}/accounts?access_token={long-live-token}
Вы получите все пользовательские страницы с идентификаторами и access_token.
Или вы можете запросить непосредственно конкретную страницу, если вы уже знаете ее page_id
GET /{page-id}/?fields=access_token&access_token={long-live-token}
Как сказал @Shadowfax, этот долгожданный токен этой страницы будет длиться вечно, пока пользователь (вы) не отменит ваше разрешение на приложение.