我需要Facebook OAuth的帮助。我正试图为我的网页做一个facebook新闻小工具。我所做的是,创建一个facebook登录页面,获得验证码,然后获得访问令牌。访问令牌中有一个过期参数。
我的问题是,当令牌过期时会发生什么?是否成为一个新的令牌人再次登录。我想把它存储在数据库中,这样我就可以在任何时候浏览网页。
如果我使用访问令牌,它仍然会过期吗?或者如果在给定的过期时间内没有使用,它会过期吗?
您最初的问题的答案是,访问令牌仅在用户登录时有效。所以,是的,每次他们登录到您的站点时,都需要检索一个新的access_token。这在身份验证流文档中有详细说明。
为了获得一个没有过期(或有很长的有效期)的访问令牌,您需要让用户授权offline_access
。
以下是本文档中对offline_access
权限的描述:
然而,离线访问-使您的应用程序能够在任何时候代表用户执行授权请求。默认情况下,大多数访问令牌会在短时间内过期,以确保应用程序仅在用户积极使用应用程序时代表用户发出请求。此权限使OAuth端点返回的访问令牌长期有效。
这不会给你永久的访问权限。如果用户更改了密码,或者对应用程序进行了反授权,则需要让用户重新授权,以获得新的access_token。如果您尝试使用过期的访问令牌,将返回一条错误消息。这就是为什么有一个允许这种可能性的流程是很重要的。
据我所知,当用户不连接时,您可以通过请求随时访问我的信息权限(offline_access)来实现这一点。
详细信息请参考
For Permissions: http://developers.facebook.com/docs/reference/api/permissions/
过期Token: http://developers.facebook.com/blog/post/500/