【问题标题】:Facebook Javascript SDK new access token in the background后台 Facebook Javascript SDK 新访问令牌
【发布时间】:2018-02-07 07:12:59
【问题描述】:

如何在后台刷新长期存在的 Facebook 访问令牌?来自脸书documentation

即使是长期存在的访问令牌最终也会过期。在任何时候, 您可以通过将人送回至 您的网络应用程序使用的登录流程 - 请注意,此人不会 实际上需要再次登录,他们已经授权您的应用程序, 因此他们会立即从登录流程重定向回您的应用 使用刷新的令牌 - 这对人来说会有所不同 基于您使用的登录流程类型,例如,如果您 正在使用 JavaScript SDK,这将在后台进行, 如果您使用的是服务器端流程,浏览器将快速重定向 到登录对话框,然后自动立即返回 再次使用您的应用。

我要协调的是,为了获得新的访问令牌,您需要让用户登录。要登录,您必须致电FB.login()。根据documentation,用户应该点击一个按钮才能登录。

如该函数的参考文档中所述,它会导致 显示登录对话框的弹出窗口,因此应该只 由于某人单击 HTML 按钮而被调用(因此 弹出窗口不会被浏览器阻止)。

如何使用 facebook javascript SDK 在后台刷新长期存在的访问令牌?

【问题讨论】:

  • 这是不可能的
  • @WizKid 我希望更清楚一点。用户需要“重新连接 facebook”才能检索应用程序的访问令牌?

标签: javascript facebook facebook-graph-api


【解决方案1】:

如果用户访问您的网站,您只能刷新用户令牌:为此使用 FB.getLoginStatus。您不需要使用FB.login - 无论如何它只适用于用户交互(点击事件),因为如果您尝试自动调用它,浏览器通常会阻止弹出窗口。

【讨论】:

  • 对于当前的 SDK 是否仍然如此,并且 response.authResponse.accessToken 与当前的到期日期相同。我在浏览器控制台中运行命令,这可能是一个问题(正如你所说的那样它对用户交互起作用)。
  • 这应该仍然是正确的,当它不再有效时它会自动刷新。如果还没有过期,则无需刷新。
猜你喜欢
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
  • 2012-09-18
相关资源
最近更新 更多