Согласно документации API, запрос curl должен быть:
$data =array ('currentPage' => 1,
'itemsPerPage' => 10
);
$hash = sha1(http_build_query($data) . sha1('password'));
$requestData = array(
'code' => ‘usercode',
'username' => 'username',
'data' => $data,
'hash' => $hash);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://mktp-stage.emag.ro/api-3/vat/read');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($requestData));
$result = curl_exec($ch);
Мой скрипт приложения:
var headers = {
"Content-Type": "application/json",
"Authorization": "Basic "+ Utilities.base64Encode(user+":"+password)
};
var options = {
"method" : "POST",
"headers" : headers,
"payload" : {
"modifiedAfter" : "2018-12-31 01:00:00",
"status" : 4
}
};
var response = UrlFetchApp.fetch(url,options);
Я получаю результаты, но не отфильтрован по "ifiedAfter ":" 2018-12-31 01:00:00 ",
«статус»: 4.
Что я делаю не так?
ОБНОВЛЕНИЕ: я использовал пример Dimu Designs, но результаты все еще не отфильтрованы.
Они (владелец API) сказали, что я должен отправить фильтры в массиве, как в запросе curl, поскольку API не принимает запросы json, а только возвращает формат json:
$data =
array (
'currentPage' => 1,
'itemsPerPage' => 10
);
$hash = sha1(http_build_query($data) . sha1('password'));
$requestData = array(
'code' => ‘usercode',
'username' => 'username',
'data' => $data,
'hash' => $hash);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($requestData));
Спасибо!