Моя общая цель — просто отображать сообщения с моей страницы Facebook на веб-сайте, но я чувствую, что упускаю что-то важное, что делает эту, казалось бы, простую задачу довольно сложной!
Я настроил свое приложение в Facebook Developer и сгенерировал тестовый токен доступа через Graph API Explorer, чтобы протестировать пример, приведенный на https://developers.facebook.com/docs/reference/php/examples., показанный ниже, который использует PHP SDK. Это прекрасно работает.
<?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-летней давности ( Facebook PHP SDK, работающий с токенами доступа ), но, похоже, ничего не работает с моим примером (предположительно, потому что это более старая версия SDK).
Может ли кто-нибудь помочь с созданием нового токена, чтобы мой основной канал работал без ручного создания токена доступа? Конечно, это всего лишь базовые вещи, но это сбивает меня с толку. Я видел ссылки на использование формата '{your-app-id}|{your-app-secret}' для создания токена доступа, но, похоже, это создает токен приложения, который не выполняет свою работу.
Любая помощь приветствуется!
Спасибо!