3

Когда мы делаем oauth2 в google api, мы получаем токен доступа и токен обновления. Предположим, что я пишу службу, и я хочу периодически опросить изменения. Я могу просто использовать токен обновления, чтобы получать токены доступа каждый раз, когда текущий токен доступа становится недействительным. Это называется offline access.Обновить токен и токен доступа в facebook API

Есть ли способ сделать то же самое в facebook? Существует ли версия автономного доступа, аналогичная версии google api.

Спасибо.

+0

Нет, вы можете расширить токен доступа пользователя до 2 месяцев. Если вы не говорите о токене доступа к приложениям. –

ответ

6

Для доступа в автономный режим вам необходимо обменять токен с недолгосрочным доступом на новый токен доступа до истечения срока его действия. У Facebook есть токен доступа одного типа (без токенов обновления). Маркер доступа до истечения срока действия должен предоставить вам новый токен доступа.

Чтобы вручную продлить маркеры с использованием Graph API конечной точки ::

GET /oauth/access_token? 
    grant_type=fb_exchange_token&   
    client_id={app-id}& 
    client_secret={app-secret}& 
    fb_exchange_token={short-lived-token} 

Цитирование документации FB от here ::

приложения не могут обменять просроченный непродолжительным маркер для долгоживущий токен. Поток выше работает только с кратковременными токенами , которые все еще действительны. Как только они истекут, ваше приложение должно отправить пользователю через поток входа снова.

Прочитайте часть ссылки документации, которую я упомянул, для уточнения.

+0

Могу я запросить новый токен доступа, когда захочу? Также каждые 2 минуты? – markzzz

+0

Я не вижу причины, почему вы не можете. В документации говорится, что вы можете получить доступ к одному токену для другого, он не указывает, когда. Сначала попробуйте нажать конечную точку, используя скрипт, вам нужно всего 5 минут, чтобы получить ответ. :) Удачи. – divyanshm

+0

Да, но, может быть, они заблокируют меня! На самом деле, я не буду тратить время, чтобы проверить, истек ли мой токен, просто я обновляю его каждый раз! Кроме того, я, что с той же процедурой я могу поменять длинный живой токен на новый длинный живой токен. – markzzz