我正在尝试获得一个长期存在的 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%3D
97
用户授权我的应用程序,我在回调 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 秒或一天。
任何想法将不胜感激!