2016-02-05 53 views
0

我想從Facebook廣告API的活動列表我使用下面的代碼Fb廣告api如何獲得僅活動的FB活動?

 $account = new AdAccount('act_' . $account_id); 
     $campaignSets = $account->getCampaigns(array(
      CampaignFields::ID, 
      CampaignFields::NAME, 
      CampaignFields::START_TIME, 
      CampaignFields::STOP_TIME, 
      CampaignFields::SPEND_CAP, 
      'effective_status' 
       )); 

但我只需要活動活動列表,所以我怎麼能過濾由Camapign狀態列表=只有主動

謝謝, Ronak沙阿

回答

2

如果您檢查方法聲明AdAccount->getCampaigns,你會看到,它接受兩個參數$fields$params$fields爲您要檢索的字段,和$params作爲過濾器。在你的情況下的例子(測試V2.5): -

$account = new AdAccount('act_' . $account_id); 

$fields = array(
    CampaignFields::ID, 
    CampaignFields::NAME, 
    CampaignFields::START_TIME, 
    CampaignFields::STOP_TIME, 
    CampaignFields::SPEND_CAP, 
    'effective_status' 
); 

$params = array(
    'effective_status' => array(
     Campaign::STATUS_ACTIVE 
    ), 
); 

$campaignSets = $account->getCampaigns($fields, $params); 

希望這會有所幫助! :)

+0

抱歉,這不是一個正確的答案如果你正確地閱讀我的問題,我想按狀態過濾活動列表,這是可能實現的嗎? –

+0

當我使用上面的代碼時,我的$ campaignSets只包含有效性狀態爲'ACTIVE'的廣告系列。我嘗試過使用CampaignFields :: STATUS,但似乎已經在v2.5中棄用了。我想你也是這樣想的,因爲你對'effective_status'進行了質疑。 @RonakShah – wai

+0

是它的工作,但我需要一個問題ACTIVE,PAUSED和DELETED活動,如果我使用像這個'effective_status'=>數組( 'ACTIVE','PAUSED','DELETED' ),那麼它會給出錯誤爲「無效的參數「,如果我從數組中刪除」DELETED「,那麼我在那裏工作是什麼問題? –

1

我可以告訴你如何使用原始REST-API(我選擇不使用FB的不必要的複雜SDK(Python))來實現這一點。

https://graph.facebook.com/v2.11/act_99999999999999/campaigns?status=[ 「ACTIVE」, 「暫停」, 「已存檔」, 「PENDING_REVIEW」, 「DISAPPROVED」, 「預先批准」, 「PENDING_BILLING_INFO」, 「CAMPAIGN_PAUSED」, 「ARCHIVED」, 「ADSET_PAUSED」] &格式= JSON &方法獲得=漂亮& = 1個&限= 250 &字段= FIELD1,FIELD2 & TIME_RANGE = { 「因爲」: 「2017年11月1日」, 「直到」: 「2017年12月5日」} & =的access_token XXX

這裏的關鍵是status=[] GET參數。