获取我的 Facebook 应用程序的访问令牌

Posted

技术标签:

【中文标题】获取我的 Facebook 应用程序的访问令牌【英文标题】:Getting an access token for my facebook app 【发布时间】:2012-05-04 14:06:49 【问题描述】:

我知道这似乎是以前已经回答过的问题,但我们真的被困在这里并感到困惑! (经过数小时的研究)

我们有一台服务器需要自动获取我们其中一个页面的洞察信息。我创建了一个 facebook 应用程序,并且作为相关页面管理员的用户已授予应用程序 manage_pages 和 read_insights 权限。

现在,如果我发布到下面的链接,我会得到一个访问令牌,但这不适用于更新见解:(访问令牌是一个相对较短的字符串)

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID_HERE&client_secret=APP_SECRET_HERE

现在,如果我在以页面管理员身份登录的浏览器中尝试此操作,我将获得正确的访问令牌:

https://graph.facebook.com/oauth/authorize?client_id=[APP_ID]&response_type=token&grant_type=client_credentials&redirect_uri=[REDIRECT]&scope=read_insights,manage_pages

然后我通过以下方式获取 JSON:

[PAGE_ID]/insights/[METRIC]/lifetime?access_token=[ACCESS_TOKEN]

请帮忙,因为我是 facebook API 的新手,真的需要弄清楚这一点。

似乎所有信息都要求用户登录以获取访问令牌,但我们希望我们的服务器收集对我们自己页面的见解。

提前致谢!

【问题讨论】:

【参考方案1】:

有两种类型的访问令牌,一种用于用户,另一种用于特定页面(使用页面访问令牌时您充当页面)。

在您获得具有 manage_pages 权限的用户访问令牌后,您可以使用它从 https://graph.facebook.com/me/accounts?access_token=[USER_ACCESS_TOKEN] 获取页面访问令牌然后您应该使用该令牌能够查询洞察数据。

无法保证令牌将继续无限期地工作(离线许可已被弃用,而且在实践中也不是真正无限期的)。当令牌停止工作时,您需要再次手动获取新令牌。

【讨论】:

感谢您的帮助 Bemmu!我理解您的回答,但我仍然对“获得具有 manage_pages 权限的用户访问令牌后”步骤感到有些困惑。我对此很陌生,仍然不确定在这里做什么。那么我是否像上面提到的那样获得应用程序访问令牌,然后像您所说的那样获得用户?它的语法是什么?再次感谢您的耐心等待!

以上是关于获取我的 Facebook 应用程序的访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

自动进行Facebook页面访问令牌生成

如何使用访问令牌获取 Facebook 用户 ID

Facebook - 永久用户访问令牌

Facebook SDK - 以编程方式获取访问令牌

在 AWS Cognito 和 Lambda 中获取 Facebook 访问令牌

无法在 Xcode Swift Facebook 登录 SDK 中获取访问令牌