通过 graph.facebook.com 身份验证流程的 Facebook 见解

Facebook insights via graph.facebook.com authentication flow

我正在尝试以编程方式从 facebook 的各个页面(大约 50 个客户)获取一些见解指标。因此我想将其自动化。

我创建了一个 Facebook 应用程序并拥有我的 app_idapp_secret。我还创建了一个不会过期的 app_access_token?

我的问题是:如何为我想从中获取见解的每个页面获取 page access token?目前我...

第 1 步)...转到 Query Explorer 并选择我的应用程序并获取具有 manage_pagesread_insights 权限的 user_access 令牌。

第 2 步) 然后我使用 user_access_tokenhttps://graph.facebook.com/v2.5/{pagename}?fields=access_token&access_token={user_access_token} 得到我认为是 page_access_token 的东西。

第 3 步)然后我使用此令牌查询 https://graph.facebook.com/v2.5/{pagename}/insights/page_impressions?access_token={page_access_token}.

之类的内容

既然应用程序已经 OKAYed,难道没有办法以编程方式在第 1 步中获取 user_access_token 吗?除了我上面描述的 app_access_token 之外,它们都过期了。我可以在第 1 步中以某种方式使用该令牌吗?

我没有使用 SDK,只是纯粹的 https 调用。

其实是可以的。我通过这样做设法获得了扩展页面访问令牌:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=[app-id]&client_secret=[app-secret]&fb_exchange_token=[short-lived-token]

来自 here。基本上你会得到一个短暂的用户令牌,然后使用它来获取页面访问令牌,然后将它与你的应用程序 id/secret 一起使用以获得永不过期的扩展页面令牌(非常适合嵌入自动报告应用程序)。

它很复杂但很管用。作为奖励,如果您在 Facebook 业务管理器上注册该应用程序,该页面令牌将在您可以通过该业务管理器帐户访问的所有网站上使用。