如何生成“永不过期”的 Facebook 访问令牌

Posted

技术标签:

【中文标题】如何生成“永不过期”的 Facebook 访问令牌【英文标题】:How to generate "never-expires" Facebook access token 【发布时间】:2019-02-04 16:20:00 【问题描述】:

Facebook 应用程序需要一个“永不过期”的访问代码如何获得?

【问题讨论】:

【参考方案1】:

你是这样得到的:

    通过 FB Developers 网站创建 Facebook 应用程序 获取您的APPID、APPSECRET、USERTOKEN 转到此处:https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id=APPID&client_secret=APPSECRET&fb_exchange_token=USERTOKEN 获取第 3 步生成的访问令牌并在此处替换:https://graph.facebook.com/PAGEID?fields=access_token&access_token=ACCESSTOKEN

【讨论】:

【参考方案2】:

请确保您了解 Token 之间的区别,有 App Token、User Token 和 Page Token,用途不同。

只有一个令牌不会过期:应用访问令牌。您不需要生成它,它只是“App-ID|App-Secret”(中间有一个管道符号)。

页面标记不再永远有效,您可以在文档https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension 中阅读

如果您用于检索此页面访问令牌的用户访问令牌是 一个长期存在的令牌,你会得到一个长期存在的页面令牌,它有利于 至少 60 天。

但是,如果您使用主页管理员令牌并且您的应用具有 业务权限,返回的页面访问令牌不会过期。

因此,为了获得扩展页面令牌(有效期为 60 天或永久),以下是步骤:

使用manage_pages 授权(以及您可能需要的其他权限) 扩展生成的用户令牌以获得扩展用户令牌 将/page-id?fields=access_token 与扩展用户令牌一起使用,以获得特定页面的扩展页面令牌,或使用/me/accounts?fields=access_token 为您管理的所有页面获取扩展页面令牌。

【讨论】:

以上是关于如何生成“永不过期”的 Facebook 访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

Facebook访问令牌过期问题[关闭]

如何验证nodejs中的jwt令牌/永不过期?

Keycloak :使用带有永不过期令牌的服务帐户

Nodejs jwt 令牌永不过期

实现永不过期的 OAuth 刷新令牌

Passport-jwt 令牌过期