URL-кодирование строк JSON при вызове Facebook MarketingAPI

При вызове конечной точки API в PHP, какая разница между передачей в качестве параметра в URL с использованием

$str = '{\'since\':\'2015-01-01\',\'until\':\'2015-01-22\'}';
'blahblah?access_token=xxx&time_range=' . $str;

против

 $str = '{\'since\':\'2015-01-01\',\'until\':\'2015-01-22\'}';
'blahblah?access_token=xxx&time_range=' . urlencode($str);

Помимо того, что последнее повышает вероятность того, что URL станет слишком длинным? Зная, что никто не увидит URL, я просто хочу получить данные из API и вывести их в CSV

Большое спасибо

0

Решение

через что-то вроде этого:

$data = array("name" => "Hagrid", "age" => "36");
$data_string = json_encode($data);

$ch = curl_init('http://api.local/rest/users');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);

$result = curl_exec($ch);

вместо передачи этой информации в URL через запрос GET?

Редактировать: На самом деле, может кто-то просто сказать мне, где я могу прочитать о флагах командной строки curl, таких как -G, или как реализовать ниже в PHP? Спасибо

curl -G \
-d "fields=['impressions','campaign_group_name','cost_per_action_type']" \
-d "action_breakdowns=['action_type','action_carousel_card_name']" \
-d "level=adgroup" \
-d "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/insights"
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]