unitedsecurity
Рабочий скрипт PHP + curl, перед использованием надо поправить $url, $token и $params перед exec_report
<?
$url = 'https://hst-api.wialon.com';
$token = '<TOKEN>';
$filename = 'new.pdf';
// login request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.'/wialon/ajax.html?svc=token/login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'params={"token":'.$token.'}');
$out = curl_exec($ch);
curl_close($ch);
$out = json_decode($out, true);
$sid = $out['eid'];
// exec report
$params = array(
reportResourceId=>515,
reportTemplateId=>1,
reportObjectId=>520,
reportObjectSecId=>0,
interval=>array(
from=>1450501520,
to=>1453279920,
flags=>0x00
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.'/wialon/ajax.html?svc=report/exec_report&sid='.$sid);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'params='.json_encode($params));
$out = curl_exec($ch);
curl_close($ch);
// export result
$params = array(
format=>2,
outputFileName=>$filename,
compress=>0
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.'/wialon/ajax.html?svc=report/export_result&sid='.$sid);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'params='.json_encode($params));
$result = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);
header('Content-type: '.$headers['content_type']);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Length: '.strlen($result));
echo $result;
?>