Is there a way to check if Facebook access token is still valid?

My site utilizes lifetime access tokens (offline_access). However, if the user changes his/her password, the access token gets reset. Is there a method to check if the current access token is valid before making calls to the Graph API? Thanks for your time.


Solution 1:

Offline, without sending anything to facebook - I don't think so. The easiest way is probably to send a request to:

https://graph.facebook.com/me?access_token=...

Facebook also supports subscriptions for real-time updates, but I am not sure how to apply them to this situation.

Solution 2:

If you want to know the token expiry time you can pass a open graph url using appid and token as below it will work .

https://graph.facebook.com/oauth/access_token_info?client_id=APPID&access_token=xxxxxxxxx

Solution 3:

Basically, FB wants you to poll for it, or to detect the case and redirect the user to get a reauth to occur. Annoying, but official:

(Old, out of date link. See below) https://developers.facebook.com/blog/post/500/

Edit: Facebook changed their link structure without redirects. Not surprised.

https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/