0

我正在尝试获得一个长期存在的 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 秒或一天。

任何想法将不胜感激!

4

1 回答 1

1

您说“我没有增强的安全对话框设置。”

如果这意味着您没有使用增强的对话框 - 您需要获取长期存在的令牌。

如果这意味着您没有在增强版本和旧版本之间切换的选项,那么它可能不相关 - 您应该拥有新版本

于 2012-07-11T16:25:36.193 回答