2017-02-14 19 views
1

これに時間を取ってくれてありがとう、ありがとうございました。 FacebookのマーケティングAPIでキャンペーンリストをすべて取得したいと考えています。PHPを使用してFacebook Marketing APIのキャンペーンリストを取得するには

これは私のコードです:

use FacebookAds\Object\AdUser; 

use FacebookAds\Object\AdAccount; 
use FacebookAds\Object\Fields\AdAccountFields; 

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

use FacebookAds\Object\Fields\AdsInsightsFields; 

use FacebookAds\Object\Fields\AdSetFields; 

$account = new AdAccount($account_id); 
$params = array(
    'time_interval' => array(
     'day_start' => array('year' =>'2015', 'month'=> '5', 'day'=>'1'), 
     'day_stop' => array('year'=>'2015', 'month'=>'5', 'day'=>'31') 
    ), 
    'limit' => 500, 
); 
$fields = array(
    AdCampaignFields::NAME, /* <--- this is the error */ 
    AdCampaignFields::OBJECTIVE, 
    AdCampaignFields::STATUS, 
); 

$campaigns = $account->getAdCampaigns($fields,$params); 
print_r($campaigns); 

今すぐ代わりに示さ全く結果が存在しないエラーがあります:

[14-Feb-2017 01:26:55 UTC] PHP Fatal error: Class 'FacebookAds\Object\Fields\AdCampaignFields' not found in /home/rbadmin17/public_html/test_17/index.php on line 98 

私はすでに「AdCampaignFields」と呼ぶと、まだそれは、クラスが見つからないと言います。助けのための

おかげで...

+0

オートローダーが含まれているように見えません。 https://developers.facebook.com/docs/php/gettingstartedを再読してください。 – ceejayoz

+0

実際、私はすでにそれを含めました。 'define( 'SDK_DIR'、__DIR__。 '/ facebook'); // SDKディレクトリのパス \t \t \t $ loader = include SDK_DIR '/ vendor/autoload.php'; '私の質問には含まれていません –

+1

広告SDKのgithubリポジトリを検索すると、検索用語 'AdCampaignFields'のシングルヒット - あなたはそれが存在するはずですか?どこからコードを取得しましたか? – CBroe

答えて

1

あなたのコードが正しい見えるが、クラスAdCampaignFieldsがまだ日付のSDKまでには存在しないと、実際にあなたのコードには必要ありませんCampaignFieldsクラス(置き換えられました)。

あなたのコードでは、行を削除することでうまく動作するはずです:

use FacebookAds\Object\Fields\AdCampaignFields; 

編集を:実際にはFBドキュメントのいくつかの例は廃止されています。この種のエラーが発生した場合は、SDKフォルダを見て自分で確認してください。クラス名が変更されたこともあります。

関連する問題