[英]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.