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 查看它。
对于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.
我认为它也很容易适应其他语言。您还可以(并且应该)存储页面访问令牌并在需要的任何地方使用它,而不是每次都检索它。
我通过 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 查看它。
对于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.
我认为它也很容易适应其他语言。您还可以(并且应该)存储页面访问令牌并在需要的任何地方使用它,而不是每次都检索它。