2010-11-18 6 views
3

utilisateurs se connectent Facebook sur mon site via une URL qui les redirige vers https://graph.facebook.com/oauth/authorize?client_id=116908145XXXXXX&display=page&scope=offline_access&redirect_uri=http://localhost:8000/account/services/?service=facebookcallbackjeton d'accès Facebook expire même avec offline_access

Sur la page de rappel que je fais une demande avec le code que je reçois pour obtenir le jeton d'accès, à ce 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=...

la réponse que je reçois est ce access_token=116908145XXXXXX|2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871|S3MG...&expires=3912

Comme on peut le voir à partir du Toke n il a une date d'expiration.

Le jeton expire quelques heures après la demande. Ne devrais-je pas recevoir un jeton d'accès sans date d'expiration si je fais les demandes avec scope = offline_access?

+0

Eh bien, vous obtenez jeton expiré ou que vous croyez juste expirera? – zerkms

Répondre

1

Les jetons que vous obtenez avec les permissions offline_access, sont "à long terme" comme le dit Facebook dans leur documentation, mais il n'est pas dit qu'il n'a pas d'expiration/infini. Même si vous obtenez ce access_token non limité dans le temps, il peut encore expirer si l'utilisateur change son mot de passe ou s'il supprime votre application.

Mais pour répondre directement à votre question, oui vous devriez obtenir un access_token de longue durée en utilisant "scope = offline_access". Aussi, s'il vous plaît vérifier si la boîte de dialogue a montré "Accédez à mes données à tout moment"

+0

Ouais, il montre la bonne boîte de dialogue, mais le jeton expire en moins d'un jour. – yoshi

+0

Coté sur facebook http://developers.facebook.com/docs/authentication/ Remarque: Si l'application n'a pas demandé l'autorisation offline_access, le jeton d'accès est limité dans le temps. Les jetons d'accès limités dans le temps sont également invalidés lorsque l'utilisateur se déconnecte de Facebook. Si l'application a obtenu l'autorisation offline_access de l'utilisateur, le jeton d'accès n'a pas de date d'expiration. Cependant, il est invalidé chaque fois que l'utilisateur change son mot de passe. – bovine

+0

Voir plus sur l'expiration à: https://developers.facebook.com/blog/post/500/ – logan

2

Ancien message, mais l'info pourrait être utile pour quelqu'un d'autre.

Facebook désactive désormais l'accès hors connexion par défaut. Vous devez activer une migration d'application si vous souhaitez toujours l'utiliser. Avec la migration désactivée, les jetons seront "de courte durée" et ne dureront qu'une heure ou deux. Vous pouvez obtenir un jeton prolongée qui dure environ 60 jours en faisant une demande à

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 

Voir this page pour plus de détails

Questions connexes