Понимание создания токенов доступа для веб-канала Facebook с использованием PHP SDK - PullRequest
0 голосов
/ 01 марта 2020

Моя общая цель - просто отобразить сообщения со своей страницы Facebook на веб-сайте, но я чувствую, что упускаю что-то важное, что делает эту, казалось бы, простую задачу довольно сложной!

Я настроил свое приложение в Facebook Developer и сгенерировал тестовый токен доступа с помощью Graph API Explorer, чтобы проверить приведенный ниже пример https://developers.facebook.com/docs/reference/php/examples, в котором используется SDK PHP. Это работает нормально.

<?php

require_once __DIR__ . '/vendor/autoload.php'; 

$fb = new \Facebook\Facebook([
  'app_id' => '{your-app-id}',
  'app_secret' => '{your-app-secret}',
  'graph_api_version' => 'v5.0',
]);

try {
  $response = $fb->get('/me?fields=name,hometown', '{access-token}');
} catch(\Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(\Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

$me = $response->getGraphUser();
echo 'All the data returned from the server: ' . $me;
echo 'My name is ' . $me->getName();
$hometown = $me->getHometown();
$hometown_name = $hometown->getName();
echo 'My hometown is ' . $hometown_name;

?>

Однако, учитывая, что срок действия токена доступа истекает, у меня сложилось впечатление, что я должен запросить новый токен, когда кто-то посещает веб-сайт (если срок действия предыдущего истек и предполагается, что Я храню его для использования в период, когда он активен). Это правильно? Если это так, я не могу понять, как генерировать токен в этих обстоятельствах. Есть посты, подобные этой, с 7-летним стажем go ( Facebook PHP SDK, посвященный токенам доступа ), но, похоже, ничто не может заставить работать с примером, который я использую (предположительно, потому что это более старая версия SDK)

Может ли кто-нибудь помочь с созданием нового токена, чтобы мой канал basi c работал без ручного создания токена доступа? Конечно, это просто основные вещи, но это сбивает меня с толку. Я видел ссылки на использование формата '{your-app-id} | {your-app-secret} "для создания токена доступа, но, похоже, создается маркер приложения, который не выполняет эту работу.

Любая помощь будет высоко ценится!

Спасибо!

1 Ответ

1 голос
/ 01 марта 2020

Я боролся с этим и в прошлом. Так что не волнуйтесь :) Соответствующая часть, которую вы ищете, это «Жетоны доступа с длительным сроком действия». Вот документация к нему:

https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...