将日期参数传递给 Facebook 批处理请求
Pass in date params to Facebook batch request
我想在PHPSDK批量请求方法中传入日期参数
是否可以传入日期参数,例如:
$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);
}
我想在PHPSDK批量请求方法中传入日期参数
是否可以传入日期参数,例如:
$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);
}