Facebook Graph API (#190) 必须使用页面访问令牌调用此方法

Facebook Graph API (#190) This method must be called with a Page Access Token

我通过 Facebook Graph API 从 Facebook 洞察中获取数据超过一年。最近开始了我对 return 的所有请求(如 {id}/insights),但出现错误:(#190) This method must be called with a Page Access Token。 但是访问令牌包含范围 manage_pages,read_insights。 有什么想法吗?

manage_pages,read_insights

这将提供一个用户 access_token ,您可以使用它来管理页面和检查见解,

但是自 2018 年 2 月 5 日起[=13​​=] 端点需要页面令牌

使用您的 manage_pages 范围 & user_token 获取页面访问令牌

向此端点发送获取请求

GET /{page-id}?fields=access_token 

输出

{
  "access_token": "{your-page-access-token}",
  "id": "{page-id}"
}

您现在可以使用返回的访问令牌调用 /insights 端点。

因为我无法添加评论,所以我会写在这里。

字段名称是 access_token,您可以在此处使用您的页面 ID 查看它。

https://developers.facebook.com/tools/explorer/?method=GET&path=page-id%3Ffields%3Daccess_token&version=v2.12

对于PHP

如果您的脚本在 PHP 中,使用 Facebook SDK for PHP,现在它坏了,您只需要检索令牌并传递它,而不是您使用的 access/refresh 令牌。

//Retrieve new 'page access token'.
$token = $fbApiClient -> get( "/{$pageId}?fields=access_token") -> getGraphNode()-> asArray();

//$q is your insights query which was working until now :(
//But with page acces token it will work again.
$response = $fbApiClient -> get( $q, $token['access_token']) -> getGraphEdge();

//(...) rest of script.

我认为它也很容易适应其他语言。您还可以(并且应该)存储页面访问令牌并在需要的任何地方使用它,而不是每次都检索它。