【发布时间】:2012-07-11 07:50:01
【问题描述】:
我正在尝试获得一个长期存在的 Facebook 访问令牌,以便我的 java servlet 应用程序可以监视和检索我的用户的消息等,而无需每隔一两个小时重新授权一次。
我正在使用服务器端 oauth 流程,一切正常,但无法获得超过一天有效的令牌。
第一个用户授权调用是:
https://www.facebook.com/dialog/oauth?client_id=-----&client_secret=-----&scope=read_mailbox,manage_pages&force=true&state=-----&redirect_uri=http%3A%2F%2F127.0.0.1%3A7101%2FeStarGlobal-eStarGlobal-context-root%2FOAuthCallback%3BJSESSIONID%3DvS9lP9JcF3B86zD99KVNGXzn2snKRl4V48lkJQD51cvXhpnLsT06%21-281618363%211342018780176%3FAuthSource%3D1%26AuthType%3D1%26EmployeeId%3D97
用户授权我的应用,我在回调 URL 上收到代码并调用我的访问令牌:
https://graph.facebook.com/oauth/access_token?client_id=-----&client_secret=-----&code=---code from above---&redirect_uri=http%3A%2F%2F127.0.0.1%3A7101%2FeStarGlobal-eStarGlobal-context-root%2FOAuthCallback%3BJSESSIONID%3DvS9lP9JcF3B86zD99KVNGXzn2snKRl4V48lkJQD51cvXhpnLsT06%21-281618363%211342018780176%3FAuthSource%3D1%26AuthType%3D1%26EmployeeId%3D97
我收到一个有效令牌,有效期约为 6800 秒,并尝试将其换成寿命更长的令牌:
https://graph.facebook.com/oauth/access_token?client_id=-----&client_secret=-----&grant_type=fb_exchange_token&fb_exchange_token=---token from above---
我得到相同的令牌,但过期秒数略短。
我已启用:删除我的 Facebook 应用页面上的 offline_access 权限。我没有增强安全对话框设置。
我将应用类型从 Web 更改为 Native/Desktop,并将过期时间延长到大约 89000 秒或一天。
任何想法将不胜感激!
【问题讨论】:
-
我不明白。您是否已删除您对 offline_access 的请求?这只是在您的情况下询问的正确权限,因为您将获得不会过期的令牌。
-
该权限已被弃用,我正在尝试使用新程序来延长令牌寿命
-
天哪!很高兴知道!很高兴我今天遇到了这个!
标签: facebook oauth server-side facebook-access-token