我通过Facebook Graph API从Facebook洞察中获取的数据超过了一年。最近我的所有请求(例如{id}/insights
)都返回并返回错误:(#190) This method must be called with a Page Access Token
。
但Access令牌包含范围manage_pages,read_insights
。
有什么想法吗?
答案 0 :(得分:9)
manage_pages,read_insights
这将为用户提供access_token
,您可以用它来管理网页&检查见解,
但自2018年5月5日起,任何/insights
端点都需要页面令牌
使用您的manage_pages
范围& user_token
获取页面访问令牌
向此终端发送获取请求
GET /{page-id}?fields=access_token
<强>输出强>
{
"access_token": "{your-page-access-token}",
"id": "{page-id}"
}
您可以使用返回的访问令牌立即调用/insights
端点。
答案 1 :(得分:4)
由于我无法添加评论,我将在此处写下来。
字段名称为access_token
,您可以在此处查看您的网页ID。
如果您的脚本是PHP,使用Facebook SDK for PHP现在它已经破坏,您只需要检索令牌并传递它而不是您正在使用的访问/刷新令牌。
//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.
我认为它也很容易适应其他语言。您也可以(并且应该)存储页面访问令牌并在任何需要的地方使用它,而不是每次都检索它。