首页 > 解决方案 > facebook php ads sdk - AdCraeative 参数无效

问题描述

我正在尝试进入 facebook php ads sdk。

use FacebookAds\Object\AdCreative;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;

$creative = new AdCreative(null, $account->id);
$creative->setData(array(
  AdCreativeFields::NAME => 'Sample Creative',
  AdCreativeFields::TITLE => 'Welcome to the Jungle',
  AdCreativeFields::BODY => 'We\'ve got fun \'n\' games',
  AdCreativeFields::IMAGE_HASH => $image->hash,
  AdCreativeFields::OBJECT_URL => 'http://www.example.com/',
  AdCreativeObjectStorySpecFields::PAGE_ID => 101xxxxxxxxxxxxx,
));

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

我仍然收到此错误:

致命错误:未捕获的 FacebookAds\Http\Exception\AuthorizationException:C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Http\Exception\RequestException.php:144 中的参数无效 堆栈跟踪: #0 C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Http\Client.php(215): FacebookAds\Http\Exception\RequestException::create(Object(FacebookAds\Http \Response)) #1 C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Http\Request.php(282): FacebookAds\Http\Client->sendRequest(Object(FacebookAds \Http\Request)) #2 C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Api.php(162): FacebookAds\Http\Request->execute() #3 C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Api.php(204): FacebookAds\Api->executeRequest(Object(FacebookAds\Http\Request)) #4 C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Object\AbstractCrudObject.php(241): FacebookAds\Api-> call('/act_4225516715...', 'POST' in C:\xampp\htdocs\FB_ADS_PHP\vendor\facebook\php-business-sdk\src\FacebookAds\Http\Exception\RequestException.php 在第 144 行

在这条线上:

$creative->create();

请问有什么帮助吗?

标签: phpfacebookxamppfacebook-php-sdkads

解决方案


所以 facebook API 总是在变化并且超级烦人。你所拥有的应该工作,我的意思是我正在阅读文档,但我设法让它工作的方式是对 adcreatives 边缘进行 POST。

try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/act_<AD_ACCOUNT_ID>/adcreatives',
    array (
        'name'            => 'Sample Creative',
        'title'           => 'Welcome to the Jungle',
        'body'            => 'We\'ve got fun \'n\' games',
        'image_hash'      => $image->hash,
        'object_url'      => 'http://www.example.com/',
        'object_story_id' => '101xxxxxxxxxxxxx', 
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

但是我刚刚注意到,在您的原始帖子中,您是从哪里获得 $image->hash 的?那可能是你的问题。


推荐阅读