Я хочу передать параметры даты в метод пакетного запроса 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);
}