Php 创建Facebook活动并获取活动ID-营销API

Php 创建Facebook活动并获取活动ID-营销API,php,facebook,facebook-graph-api,facebook-marketing-api,Php,Facebook,Facebook Graph Api,Facebook Marketing Api,这是facebook告诉人们根据文档创建活动的方式: 但是,新活动构造函数中的null字段参数是什么?我在里面放的任何东西都会成为竞选活动的ID,但都是无效的。 你如何获得竞选活动的身份证 当我运行这段代码时,我没有收到任何错误,但是在我的广告管理器上没有创建任何内容,当我回显$campaign->id时,它只是空白,因为id为null。但是,如果我打印r($campaign),它将返回一个包含许多字段但没有ID字段的大型对象 Facebook代码: use FacebookAds\Objec

这是facebook告诉人们根据文档创建活动的方式:

但是,新活动构造函数中的null字段参数是什么?我在里面放的任何东西都会成为竞选活动的ID,但都是无效的。 你如何获得竞选活动的身份证

当我运行这段代码时,我没有收到任何错误,但是在我的广告管理器上没有创建任何内容,当我回显$campaign->id时,它只是空白,因为id为null。但是,如果我打印r($campaign),它将返回一个包含许多字段但没有ID字段的大型对象

Facebook代码:

use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
use FacebookAds\Object\Values\CampaignObjectiveValues;

$campaign = new Campaign(null, 'act_<AD_ACCOUNT_ID>');
$campaign->setData(array(
CampaignFields::NAME => 'My campaign',
CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS,
));

$campaign->create(array(
 Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));
使用FacebookAds\Object\Campaign;
使用FacebookAds\Object\Fields\CampaignFields;
使用FacebookAds\Object\Values\ActivityObjectiveValues;
$campaign=新活动(null,'act_


但是,它不是很有用,因为它只是指向一个没有提供相关信息的快速入门指南。

在调用create方法后,您应该使用$campaign->id获取id。检查是否有错误,可能您没有获取id,因为没有创建活动

如果您正在查找PHP SDK文档,请访问:

试试这个例子:

use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;

try{
    $campaign  = new Campaign(null, $account->id);
    $campaign->setData(array(
        CampaignFields::NAME => 'My First Campaign',
        CampaignFields::OBJECTIVE => 'LINK_CLICKS',
    ));
    $campaign->validate()->create(array(
        Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
    ));
    echo "Campaign ID:" . $campaign->id . "\n";
}
catch (Exception $e) {
    echo 'Error message: ' .$e->getMessage() ."\n" . "<br/>";
    echo 'Error Code: ' .$e->getCode() ."<br/>";
}
使用FacebookAds\Object\Campaign;
使用FacebookAds\Object\Fields\CampaignFields;
试一试{
$campaign=新活动(空,$account->id);
$campaign->setData(数组)(
活动字段::名称=>“我的第一个活动”,
活动字段::目标=>'LINK_CLICKS',
));
$campaign->validate()->创建(数组)(
活动::状态\参数\名称=>活动::状态\已暂停,
));
回显“活动ID:.$Campaign->ID.\n”;
}
捕获(例外$e){
回显“错误消息:”。$e->getMessage()。“\n”。
; 回显“错误代码:”。$e->getCode()。“
”; }
调用create方法后,应该使用$campaign->id获取id。检查是否出现错误,可能是因为没有创建活动,所以无法获取id

如果您正在查找PHP SDK文档,请访问:

试试这个例子:

use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;

try{
    $campaign  = new Campaign(null, $account->id);
    $campaign->setData(array(
        CampaignFields::NAME => 'My First Campaign',
        CampaignFields::OBJECTIVE => 'LINK_CLICKS',
    ));
    $campaign->validate()->create(array(
        Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
    ));
    echo "Campaign ID:" . $campaign->id . "\n";
}
catch (Exception $e) {
    echo 'Error message: ' .$e->getMessage() ."\n" . "<br/>";
    echo 'Error Code: ' .$e->getCode() ."<br/>";
}
使用FacebookAds\Object\Campaign;
使用FacebookAds\Object\Fields\CampaignFields;
试一试{
$campaign=新活动(空,$account->id);
$campaign->setData(数组)(
活动字段::名称=>“我的第一个活动”,
活动字段::目标=>'LINK_CLICKS',
));
$campaign->validate()->创建(数组)(
活动::状态\参数\名称=>活动::状态\已暂停,
));
回显“活动ID:.$Campaign->ID.\n”;
}
捕获(例外$e){
回显“错误消息:”。$e->getMessage()。“\n”。
; 回显“错误代码:”。$e->getCode()。“
”; }
facebook示例不完整。请确保启动facebook广告API

如果创建成功,Facebook库会将id分配给您在其上调用create()的活动对象,并且可以按如下方式访问该对象:

$campaign->{CampaignFields::ID};
以下是如何创建活动的完整示例:

   // 1. The facebook api has to be initiated before making request
    Api::init("App Id", "App Secret", "User Token");

    $campaign = new Campaign(null, 'act_<account id>');

    // 2. Populating the campaign object
    $campaign->setData([
        CampaignFields::NAME => 'TEST Campaign',
        CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS
    ]);

    try {

        // 3. If the operation is successful the id will be set
        $campaign->create();

        // Grabbing the id.
        $facebookCampaignId = $campaign->{CampaignFields::ID};

        // Printing the id
        var_dump($facebookCampaignId);
    } catch (RequestException $requestException) {

        // Can be null
        $facebookResponse = $requestException->getResponse();

        if (!empty($facebookResponse)) {

            // Its easier to debug using the response by Facebook.
            var_dump($facebookResponse->getBody());
        }

    } catch (Exception $exception) {
        var_dump($exception->getMessage());
    }
//1.在发出请求之前必须启动facebook api
Api::init(“应用程序Id”、“应用程序机密”、“用户令牌”);
$campaign=newcampaign(null,'act_');
//2.填充活动对象
$campaign->setData([
活动字段::名称=>“测试活动”,
活动字段::目标=>活动目标值::链接
]);
试一试{
//3.如果操作成功,将设置id
$campaign->create();
//抓取身份证。
$facebookCampaignId=$campaign->{CampaignFields::ID};
//打印id
var_dump($facebookCampaignId);
}catch(RequestException$RequestException){
//可以为空
$facebookResponse=$requestException->getResponse();
如果(!空($facebookResponse)){
//使用Facebook的响应更容易调试。
var_dump($facebookResponse->getBody());
}
}捕获(异常$Exception){
var_dump($exception->getMessage());
}

facebook示例不完整。请确保启动facebook广告API

如果创建成功,Facebook库会将id分配给您在其上调用create()的活动对象,并且可以按如下方式访问该对象:

$campaign->{CampaignFields::ID};
以下是如何创建活动的完整示例:

   // 1. The facebook api has to be initiated before making request
    Api::init("App Id", "App Secret", "User Token");

    $campaign = new Campaign(null, 'act_<account id>');

    // 2. Populating the campaign object
    $campaign->setData([
        CampaignFields::NAME => 'TEST Campaign',
        CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS
    ]);

    try {

        // 3. If the operation is successful the id will be set
        $campaign->create();

        // Grabbing the id.
        $facebookCampaignId = $campaign->{CampaignFields::ID};

        // Printing the id
        var_dump($facebookCampaignId);
    } catch (RequestException $requestException) {

        // Can be null
        $facebookResponse = $requestException->getResponse();

        if (!empty($facebookResponse)) {

            // Its easier to debug using the response by Facebook.
            var_dump($facebookResponse->getBody());
        }

    } catch (Exception $exception) {
        var_dump($exception->getMessage());
    }
//1.在发出请求之前必须启动facebook api
Api::init(“应用程序Id”、“应用程序机密”、“用户令牌”);
$campaign=newcampaign(null,'act_');
//2.填充活动对象
$campaign->setData([
活动字段::名称=>“测试活动”,
活动字段::目标=>活动目标值::链接
]);
试一试{
//3.如果操作成功,将设置id
$campaign->create();
//抓取身份证。
$facebookCampaignId=$campaign->{CampaignFields::ID};
//打印id
var_dump($facebookCampaignId);
}catch(RequestException$RequestException){
//可以为空
$facebookResponse=$requestException->getResponse();
如果(!空($facebookResponse)){
//使用Facebook的响应更容易调试。
var_dump($facebookResponse->getBody());
}
}捕获(异常$Exception){
var_dump($exception->getMessage());
}

第一个参数是活动ID。如果您想通过活动ID获取现有活动,则不应在创建新活动时进行设置。这很有帮助,但我不明白为什么代码末尾的echo$campaign->ID没有显示任何内容?这是一个暗中操作(在阅读SDK代码后),请尝试
$newCampaign=$campaign->getSelf();echo$newCampaign->id
“致命错误:未捕获异常'exception',消息'field'id'是必需的。”“这一定是权限问题或其他问题。嗯。如何:
$camp=$campaign->create(array(…));echo$camp->id;
?但它似乎返回了相同的对象。这仍然是一个奇怪的行为。第一个参数是活动id。这是