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

问题描述 投票:0回答:2

我从Facebook Graph API获得的数据来自Facebook Graph API超过一年。最近开始我的所有请求(如{id}/insights)返回错误:(#190) This method must be called with a Page Access Token。但Access令牌包含范围manage_pages,read_insights。有任何想法吗?

facebook facebook-graph-api facebook-insights
2个回答
9
投票

manage_pages,read_insights

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

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

使用manage_pages范围和user_token获取页面访问令牌

向此端点发送get请求

GET /{page-id}?fields=access_token 

产量

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

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


4
投票

由于我无法添加评论,我会在这里写。

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

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

For PHP

如果您使用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.

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

© www.soinside.com 2019 - 2024. All rights reserved.