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

Facebook Graph API(#190)必须使用页面访问令牌调用此方法,facebook,facebook-graph-api,facebook-insights,Facebook,Facebook Graph Api,Facebook Insights,我通过Facebook Graph API从Facebook insights获得了一年多的数据。最近启动了我的所有请求(如{id}/insights)以返回错误:(#190)必须使用页面访问令牌调用此方法。 但是访问令牌包含作用域管理页面,读取洞察。 有什么想法吗?管理页面,阅读见解 这将提供一个用户访问\u令牌,您可以使用该令牌管理页面和检查细节 但自2018年2月5日起,任何/insights端点都需要页面令牌 使用您的manage_pagesscope&user_令牌获取页面访问令牌 向

我通过Facebook Graph API从Facebook insights获得了一年多的数据。最近启动了我的所有请求(如
{id}/insights
)以返回错误:
(#190)必须使用页面访问令牌调用此方法。
但是访问令牌包含作用域
管理页面,读取洞察

有什么想法吗?

管理页面,阅读见解

这将提供一个用户
访问\u令牌
,您可以使用该令牌管理页面和检查细节

但自2018年2月5日起,任何
/insights
端点都需要页面令牌

使用您的
manage_pages
scope&
user_令牌
获取页面访问令牌

向该端点发送get请求

GET /{page-id}?fields=access_token 
{
  "access_token": "{your-page-access-token}",
  "id": "{page-id}"
}
输出

GET /{page-id}?fields=access_token 
{
  "access_token": "{your-page-access-token}",
  "id": "{page-id}"
}

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

因为我无法添加注释,所以我将在这里写下它

字段名为
access\u token
,您可以在此处使用页面id进行检查

对于PHP 如果您的脚本是用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提到的自2018年2月5日起生效的页面访问令牌吗?我找不到它。是的,他们有一个通知,一个90天的中断更改或什么的,而且当你在顶部检查旧版本的文档时,它会提到所有版本都受到此更改的影响。这对我不起作用。当我使用
get/{Page id}?fields=user\u access\u token
@JesseNovotny我遇到了完全相同的问题,你找到答案了吗?@Green你一定误解了答案,它是有效的!如果你需要进一步的帮助,我可以帮助你