【问题标题】:Unable to get a long-lived Facebook Access Token with Server Side OAuth Fow无法使用服务器端 OAuth Fow 获取长期存在的 Facebook 访问令牌
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

  • 抱歉,我看到了相关帖子,但在 Facebook 应用页面上找不到该设置。它一定是 OAuth Dialog 选项卡,看起来像是设置为使用新的 Auth Dialog。我确实有一个 Authenticvated Referrals 的复选标记,并且在 Parameter 下的 Permissions and Query String(?code=) 中没有输入任何内容。
猜你喜欢
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 2012-05-15
  • 2015-11-11
相关资源
最近更新 更多