I want to pass in date parameters into the PHP SDK batch request method.
Is it possible to pass in date params such as:
$params = array(
'time_range' => array(
'since' => (new \DateTime("-1 week"))->format('Y-m-d'),
'until' => (new \DateTime())->format('Y-m-d'),
),
);
My batch request is essentially:
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;
}
After reading the source code, I found you can pass the date through in params as such: (it gets url_encoded when passed to the request handler)
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);
}