我试图访问相关的广告活动数据(如国家,CPM,花...)使用Facebook的PHP的广告-SDK
Facebook的用户已经被添加作为Facebook的经营业务Manager管理。
我做的第一件事是获取给定用户的app_secret和APP_ID访问令牌:
public function getAccessToken()
{
try {
$response = $this->client->get(
$this->accessTokenUrl, [
'query' => [
'client_id' => $this->appId,
'client_secret' => $this->appSecret,
'grant_type' => 'client_credentials',
],
'stream' => true
]);
} catch(RequestException $e) {
echo $e->getMessage();
}
$body = $response->getBody();
$contents = $body->getContents();
$contentsArray = explode('=', $contents);
return $contentsArray[1];
}
它有以下形式:
=的access_token XXXXXX
这就是为什么我必须做出一个爆炸。
一旦我得到的访问令牌,我在API认证:
Api::init($this->appId, $this->appSecret, $this->accessToken);
$api = Api::instance();
最后,我尝试使用方式Contact Manager帐户ID来获得一些数据:
$account = new AdAccount($this->accountId);
$test = $account->getAdCampaigns();
但我得到以下错误信息:
[FacebookAds \ HTTP \异常\ AuthorizationException]
不支持GET请求。 请阅读图形API文档
有什么建议么?
更新:
正如保罗·贝恩第一评论所说,我改变了这几行:
$account = new AdAccount($this->accountId);
$test = $account->getAdCampaigns();
对于这些的:
$account = new AdAccount('act_' . $this->accountId);
$test = $account->getAdCampaigns();
现在我得到一个不同的错误信息:
(#10)您没有足够的权限来执行此操作
我不知道为什么我没有足够的权限,因为正如我所说的用户添加为Facebook的经营业务Manager管理之前。
此外,在Facebook的用户资料,在设置/高级,Facebook的经营业务经理帐户ID是“授权的广告帐户编号”加
该应用程序已被批准用于基本的访问级别。