1

Wialon Local SDK: export_result

Topic: Wialon Local SDK: export_result

Добрый день!

Нужна помощь коллективного разума.. smile Стараюсь экспортировать отчет из Wialon Local в формате XML с помощью PHP скрипта.

Выполняю ряд функкций, вплодь до exec_report, в ответ получаю массив данных отчета за указанный мною период но не со всеми подстроками ... После этого стараюсь экспортировать файл в формате XML, и для этого прописываю функцию  export_result перехожу в браузер, выполняю скрипт и вместо полноценного отчета в  xml формате получаю понимание того, что что-то я делаю не так, файл не скачивается.. smile

Можете подсказать, каким образом было бы правильнее получить XML файл с полным набором таблиц и строк выполняемого отчета?

Великий и ужасный Гиоргий Каладзе
2

Wialon Local SDK: export_result

Re: Wialon Local SDK: export_result

Добрый день

Наиболее вероятная причина - разный IP у сервера PHP и браузера и, как следствие, ПХПшная сессия в браузере считается невалидной.
Почему не выполнить export_result прямо в скрипте?

3

Wialon Local SDK: export_result

Re: Wialon Local SDK: export_result

shmi wrote:

Добрый день

Наиболее вероятная причина - разный IP у сервера PHP и браузера и, как следствие, ПХПшная сессия в браузере считается невалидной.
Почему не выполнить export_result прямо в скрипте?

Хороший вопрос.. может быть потому-что не понимаю как.. )

$sid = sid();
exec_report($sid);
export_result($sid);
cleanup_result($sid);
logout_wln($sid);

Мой код сейчас выглядит как-то так (не считая содержания самих функций), и я ожидаю что при его выполнении в браузере, браузер должен спросить меня куда сохранить файл..

Есть способ сохранить файл сразуже с помощью скрипта?

Великий и ужасный Гиоргий Каладзе
4

Wialon Local SDK: export_result

Re: Wialon Local SDK: export_result

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;
?>
5

Wialon Local SDK: export_result

Re: Wialon Local SDK: export_result

shmi

А можешь подсказать как на Локале достать Токен.. smile А то мы до сих пор без него работаем, по документации не смог разобраться... smile

Великий и ужасный Гиоргий Каладзе
6

Wialon Local SDK: export_result

Re: Wialon Local SDK: export_result

Хотя вроде разобрался.. smile Спасибо, shmi!

Великий и ужасный Гиоргий Каладзе