Facebook API - получение токена, который никогда не истекает

Я хотел бы создать токен, который никогда не истечет.

У меня есть разрешение "manage_pages", и если у пользователя есть "fanpage", токен никогда не истечет.

Но если у пользователя нет созданных фан-страниц, токен истекает через 2 месяца.

Я использую новейшие API (PHP SDK).

Это мой логин:

$session = $helper->getSessionFromRedirect();

$token = $session->getToken();

И после этого я делаю что-то вроде этого:

$accounts = new FacebookRequest($session, 
'GET', 
'/me/accounts?fields=picture,access_token,name');

Было бы неплохо, если бы у некоторых из вас была идея, как я могу получить токен, который никогда не истекает, хотя у пользователя нет фан-страницы

2 ответа

Решение

Единственными токенами, которые действительны навсегда, являются токены доступа к приложениям и маркеры доступа к расширенным страницам. Вы не можете получить токен пользователя, который действует вечно, и он вам никогда не понадобится. Если пользователь не посещал приложение более 2 месяцев, он, скорее всего, больше не использует приложение. Вы можете легко обновить токен пользователя, используя FB.getLoginStatus каждый раз, когда пользователь посещает ваше приложение.

Вот все, что вам нужно знать о токенах доступа:

Если вам необходим доступ к API Graph, вы можете вызывать API Graph без необходимости использовать токен доступа к приложению. Как уже упоминалось в Facebook:

Существует еще один метод для вызова API Graph, который не требует использования сгенерированного токена приложения. Вы можете просто передать свой идентификатор приложения и секрет приложения в качестве параметра access_token при вызове: http://graph.facebook.com/endpoint?key=value&access_token=app_id|app_secret Выбор использовать сгенерированный токен доступа вместо этого Метод зависит от того, где вы прячете свой секрет приложения.

Вы можете прочитать больше об этом здесь:

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

Другие вопросы по тегам