首页 > 解决方案 > 卡在“广告 API 访问级别:开发”上

问题描述

我尝试有一个可以暂停/恢复我的广告集(我自己拥有的帐户)的应用程序。

请求此操作时,我没有收到任何错误消息(或任何内容)输出

$adset = new AdSet($adsetid);
$adset->campaign_status = AdSet::STATUS_ACTIVE;
try{
  $adset->updateSelf();
} catch (RequestException $e) {
    $response = json_decode($e->getResponse()->getBody(), true);
    var_dump($response);
}

但我看到广告集状态没有改变。

现在,我确实看到营销 API,设置部分向我显示 API 访问级别是开发,并且该应用程序没有广告管理标准访问权限。

没有标准访问

当我在 App review > Permissions and features 检查权限时,它显示“标准访问”和“准备使用”。(但不是“活跃”)

权限

同时我过去 30 天的请求数和错误率是可以接受的。我不明白使它工作缺少什么。谁能帮我吗?

通话次数和错误率

标签: facebook-graph-apifacebook-php-sdkfacebook-marketing-api

解决方案


我在问题中显示的代码是基于我从 Facebook 营销 API 文档中复制的代码。

奇怪的是,当我使用 Graph API Explorer 模拟我的请求并点击“获取代码”按钮时,它会建议您使用不同的代码。

当我使用该代码而不是营销 API 文档的代码时,它似乎确实按预期工作。此代码与文档中的代码相反:

$adsetid = "YOUR ADSET ID";
$access_token = "YOUR ACCESS TOKEN";
try {
  $response = $fb->post(
    '/'.$adsetid,
    array (
      'fields' => 'status',
      'status' => 'ACTIVE'
    ),
    $access_token
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

推荐阅读