Как получить токен доступа с длительным сроком службы на стороне сервера (PHP)?

Возможный дубликат:
Как продлить срок действия токена доступа после прекращения поддержки offline_access

Я пытаюсь получить токен доступа с длительным сроком действия (срок действия 60 дней) для своего приложения. Но все мои тесты дают мне только короткий токен.

Что я делаю :

  • Сначала выполните классическую «аутентификацию», чтобы получить токен доступа с коротким сроком действия. Итак, URL-адрес: GET graph.facebook.com:443/oauth/access_token?redirect_uri={my_callback}&code={the_code_given_by_fb}&client_id={my_client_id}&client_secret={my_client_secret}

=> Дайте мне два data access_token (длинная строка) и expire (около 4000 секунд)

  • Затем я хочу преобразовать свой короткий доступ к долгому доступу, поэтому я пытаюсь позвонить:

ПОЛУЧИТЬ graph.facebook.com:443/oauth/access_token?redirect_uri={my_callback}&code={the_code_given_by_fb}&client_id={my_client_id}&client_secret={my_client_secret}&fb_exchange_token={short_life_access_token}&grant_type=fb_exchange_token

=> Этот вызов дает мне те же данные, что и первый вызов (поэтому нет жетона долгой жизни)

Я также пытаюсь: GET graph.facebook.com:443/oauth/access_token?client_id={my_client_id}&client_secret={my_client_secret}&fb_exchange_token={short_life_access_token}&grant_type=fb_exchange_token

=> Тот же результат

Так что я не понял, что мы должны сделать, чтобы получить токен доступа на долгую жизнь?


person MLKiiwy    schedule 24.05.2012    source источник


Ответы (1)


Вы поступили правильно. Вы продлили краткосрочный токен доступа. Теперь сохраните это в базе данных и используйте. Через 60 дней пользователь-администратор страницы должен будет вернуться в ваше приложение в течение этих 60 дней, чтобы получить новый токен доступа с увеличенным сроком действия.

К сведению: удаление офлайн-доступа

Из ДОК

    If you pass an access_token that had a long-lived expiration time, the endpoint will  
 simply pass that same access_token back to you without altering or extending the expiration time.
person Venu    schedule 24.05.2012
comment
Это очень странно... срок действия указывает на 4000 секунд для всего токена? Таким образом, данные с истекшим сроком действия возвращаются неправильно? - person MLKiiwy; 24.05.2012
comment
Вы включили «устаревший offline_access» в расширенных настройках приложения для разработчиков? - person Venu; 24.05.2012
comment
Нет, но после включения «устареть offline_access» у меня все еще есть короткий токен после второго вызова (срок действия равен 4000 с) - person MLKiiwy; 24.05.2012