簡體   English   中英

將日期參數傳遞給Facebook批處理請求

[英]Pass in date params to Facebook batch request

我想將日期參數傳遞到PHP SDK批處理請求方法中。

是否可以傳遞日期參數,例如:

$params = array(
  'time_range' => array(
    'since' => (new \DateTime("-1 week"))->format('Y-m-d'),
    'until' => (new \DateTime())->format('Y-m-d'),
  ),
);

我的批處理請求基本上是:

foreach( $campaign_ids as $campaign_id ) {  

    $batch[] = $fb->request('GET/', env("FB_APP_VERSION") . '/' . $campaign_id . '/insights?fields=impressions,unique_clicks,reach');    

}

    try {
      $responses = $fb->sendBatchRequest($batch);
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
      // When Graph returns an error
      echo 'Graph returned an error: ' . $e->getMessage();
      exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
      // When validation fails or other local issues
      echo 'Facebook SDK returned an error: ' . $e->getMessage();
      exit;
    }

根據

我假設您可以像這樣向每個請求添加一個附加參數:

格式: time_range={'since':'2015-01-01','until':'2015-01-20'}

在PHP中,這意味着您必須json_encode $params數組並將其添加到每個請求中。

$time_range = array(
    'since' => (new \DateTime("-1 week"))->format('Y-m-d'),
    'until' => (new \DateTime())->format('Y-m-d'),
)

$fb->request('GET/', env("FB_APP_VERSION") . '/' . $campaign_id . '/insights?fields=impressions,unique_clicks,reach&time_range=' . json_encode($time_range));

閱讀源代碼后,我發現您可以像這樣通過參數傳遞日期:(傳遞給請求處理程序時它會被url_encoded)

foreach( $campaigns as $campaign ) {  

        $params = array(
          'time_range' => array(
            'since' => (new \DateTime($campaign->data_date . ' -1 day'))->format('Y-m-d'),
            'until' => (new \DateTime($campaign->data_date))->format('Y-m-d')
          ),
        );

        $batch[] = $fb->request('GET', '/' . $campaign->ad_campaign_id . '/insights?fields=impressions,unique_clicks,reach', $params);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM