Facebook graph api 缺少创造性规范facebook

Facebook graph api 缺少创造性规范facebook,facebook-graph-api,facebook-php-sdk,Facebook Graph Api,Facebook Php Sdk,我正在尝试使用PHPSDK创建一个广告 我可以创建活动、目标、adset和创意(返回我可以使用图形浏览器验证的创意id) 但当我最终运行代码来创建广告本身时,我得到一个异常,如下所示: "error_user_title" => "Missing creative spec" "error_user_msg" => "No creative spec found for given adgroup." 我就是找不到任何与这个错误有关的东西 以下是我的代码的相关部分:

我正在尝试使用PHPSDK创建一个广告

我可以创建活动、目标、adset和创意(返回我可以使用图形浏览器验证的创意id)

但当我最终运行代码来创建广告本身时,我得到一个异常,如下所示:

   "error_user_title" => "Missing creative spec"
    "error_user_msg" => "No creative spec found for given adgroup."
我就是找不到任何与这个错误有关的东西

以下是我的代码的相关部分:

    $link_data = new AdCreativeLinkData();
    $link_data->setData(array(
        AdCreativeLinkDataFields::LINK => $route,
        AdCreativeLinkDataFields::MESSAGE => $petition_statement,
        AdCreativeLinkDataFields::NAME => $banner_title,
        AdCreativeLinkDataFields::IMAGE_HASH => $image_hash,
    ));


    $object_story_spec = new AdCreativeObjectStorySpec();
    $object_story_spec->setData(array(
        AdCreativeObjectStorySpecFields::PAGE_ID => $pageid,
        AdCreativeObjectStorySpecFields::INSTAGRAM_ACTOR_ID=>$instagram_id,
        AdCreativeObjectStorySpecFields::LINK_DATA=>$link_data
    ));


    $creative = new AdCreative(null,$account_id);
    $creative->setData(array(
        AdCreativeFields::TITLE => $banner_title,
        AdCreativeFields::BODY => $banner_subtitle,
        AdCreativeFields::IMAGE_HASH => $image_hash,
        AdCreativeFields::OBJECT_TYPE => 'SHARE',
        AdCreativeFields::OBJECT_STORY_SPEC=>$object_story_spec

    ));

    $creative->create();


    echo 'Creative ID: '.$creative->id . "\n";

    $ad = new Ad(null, $account_id);
    $ad->setData(array(
        AdFields::NAME => $short_name,
        AdFields::ADSET_ID => $adset->id,
        AdFields::CREATIVE => $creative,
        AdFields::TRACKING_SPECS => array(array(
            'action.type' => 'offsite_conversion',
            'fb_pixel' => $pixel_code,
        ))

    ));
    $ad->create(array(Ad::STATUS_PARAM_NAME => Ad::STATUS_PAUSED));

感谢您的帮助。

我常说,要想成为一名成功的开发人员,唯一需要的技能就是能够为一个问题苦思冥想几天,通读源代码,谷歌搜索,重构,重写,然后意识到你忘记了一些他妈的显而易见的事情

    AdFields::CREATIVE => $creative,
应该读

    AdFields::CREATIVE => $creative->id,

但是坚持的能力不是你需要的技能。真正的技能是以某种方式抵制将电脑扔出窗外的强烈冲动,转而做一些有成效的事情。

我常说,要成为一名成功的开发人员,唯一需要的技能是能够为一个问题苦思冥想数天,通读源代码,谷歌it,重构,重写,然后意识到你忘记了一些他妈的显而易见的事情

    AdFields::CREATIVE => $creative,
应该读

    AdFields::CREATIVE => $creative->id,

但是坚持的能力不是你需要的技能。真正的技巧是以某种方式抵挡住把电脑扔出窗外的强烈冲动,转而做一些有意义的事情。

经过几个小时的测试,特雷弗的答案似乎是错误的。这是正确的语法:

AdFields::CREATIVE => array('creative_id'=>$creative->id)

经过数小时的测试,特雷弗的答案似乎不正确。这是正确的语法:

AdFields::CREATIVE => array('creative_id'=>$creative->id)

为了成为一名成功的开发人员,文档应该是正确的。Facebook网站上的示例代码是错误的,您的更正是。。。正确:)这也是我一直的感觉。Facebook文档对我来说非常不清楚。为了成为一名成功的开发者,文档应该是正确的。Facebook网站上的示例代码是错误的,您的更正是。。。正确:)这也是我一直的感觉。我觉得Facebook文档很不清楚。有什么更新吗?你是怎么解决的?有更新吗?你是怎么解决的?