2010-11-18 4 views
3

Вход для пользователей Facebook на моем сайте через URL, который перенаправляет их https://graph.facebook.com/oauth/authorize?client_id=116908145XXXXXX&display=page&scope=offline_access&redirect_uri=http://localhost:8000/account/services/?service=facebookcallbackмаркер доступа Facebook истекает даже offline_access

На странице обратного вызова, я делаю запрос с кодом, которую я получаю, чтобы получить маркер доступа, при этом URL

https://graph.facebook.com/oauth/access_token?code=2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871%7.....&format=json&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Faccount%2Fservices%2F%3Fservice%3Dfacebookcallback&client_id=116908145040447&scope=offline_access&client_secret=...

ответ Я получаю это access_token=116908145XXXXXX|2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871|S3MG...&expires=3912

Как видно из телемедицинских n у него есть срок годности.

Срок действия токена истекает через несколько часов после запроса. Должен ли я получать токен доступа без истечения срока действия, если я делаю запросы с помощью scope = offline_access?

+0

Ну, вы получаете токен истек, или вы просто предположим, что истекает? – zerkms

ответ

1

токены, которые вы получаете с разрешениями offline_access, являются «долговечными», как говорится в своей книге в facebook, но не сказано, что у него нет истечения/бесконечности. Даже если вы получите этот ограниченный доступ access_token, он все равно может истечь, если пользователь изменит свой пароль или удалит ваше приложение.

Но, чтобы ответить на ваш вопрос напрямую, да, вы должны получить долгоживущий access_token, используя «scope = offline_access». Кроме того, проверьте, было ли в диалоговом окне «Доступ к моим данным в любое время»

+0

Да, он показывает правильный диалог, но токен истекает менее чем за день. – yoshi

+0

Процитировано из facebook http://developers.facebook.com/docs/authentication/ Примечание. Если приложение не запросило разрешения offline_access, токен доступа ограничен по времени. Точный токен доступа также недействителен, когда пользователь выходит из Facebook. Если приложение получило разрешение пользователя offline_access от пользователя, токен доступа не имеет срока действия. Однако он становится недействительным всякий раз, когда пользователь меняет свой пароль. – bovine

+0

Подробнее об истечении: https://developers.facebook.com/blog/post/500/ – logan

2

Старый пост, но информация может быть полезной для кого-то еще.

Facebook теперь отключает offline_access по умолчанию. Вы должны включить миграцию приложения, если вы все еще хотите его использовать.

С миграцией, токены будут «недолговечными» и продолжатся всего час или два. Вы можете получить расширенный маркер, который длится около 60 дней, сделав запрос на

https://graph.facebook.com/oauth/access_token?    
    client_id=APP_ID& 
    client_secret=APP_SECRET& 
    grant_type=fb_exchange_token& 
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

См this page для получения более подробной информации

Смежные вопросы