Page 1 of 1

REST API. Возможность получать данные из GuardSaaS

PostPosted: Wed Jan 14, 2015 7:19 am
by GuardSaaS
В GuardSaaS имеется возможность получать “сырой” лог событий в JSON, задавая нужные параметры.
Авторизация Вашим логином/паролем.

http://app.guardsaas.com/reports/events/export

Возможные параметры:
limit=n (25) - количество получаемых событий
offset=n (0) - смещение
order=asc,desc (asc) - порядок вывода
idFrom=n - начиная с id
date - Y-m-d (только для даты)
dateFrom Y-m-d - начальная дата
dateTo Y-m-d - конечная дата
exists_cards=true,false (false) - показывать только зарегистрированные карты
only_passage=true,false (false) -только события прохода ( код 4,5 )
events=n1,n2,n3 - коды событий без пробелов!

Например:

https://app.guardsaas.com/reports/events/export?order=asc&offset=10

Это ЭКСПЕРИМЕНТАЛЬНАЯ функциональность. Если возникают проблемы - обращайтесь на info@guardsaas.com

Re: REST API. Возможность получать данные из GuardSaaS

PostPosted: Tue Nov 03, 2015 3:45 pm
by GuardSaaS
Прилагаем также пример скрипта на PHP для получнния этого отчета.

- Сохраните код в файл getreport.php
- Исправьте значения переменных $user и $password на свои логин и пароль
- Запускать можно так: php getreport.php > output.json

Приведенный пример не может быть использован для многократного запуска!
Нужно делать вызов получения отчета в цикле и обязательно выполнять logout после окончания работы.

В настоящее время рекомендуется получать отчет без логина с помощью access_key как описано ниже.

В системе будет реализована защита от слишком частого вызова данной функции.

Пользователи, использующие скрипты, которые постоянно делают login чаще, чем 1 раз в 1 минуту, будут заблокированы до исправления скриптов!

Code: Select all
<?php
/**
 * Created by PhpStorm.
 * User: roman
 * Date: 11/3/15
 * Time: 4:01 PM
 */

// Пример получения отчета из GuardSaaS из внешней PHP программы

// Установите данные своего аккаунта для авторизации
$user='your_login';
$password = 'your_password';

$cookie_path = '/tmp/';
$loginurl = 'https://app.guardsaas.com/login';
$checkurl = 'https://app.guardsaas.com/login_check';
$reporturl = 'https://app.guardsaas.com/reports/events/export';

$ch = curl_init();
//get login form
curl_setopt($ch, CURLOPT_URL, $loginurl);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6');
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_path);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_path);

$response = curl_exec($ch);
if (curl_errno($ch)) die(curl_error($ch));

// Немного некрасивый парсинг токена... но работает.
$pos = strpos($response,"_csrf_token");
$token = substr($response,$pos);
$token = substr($token,strpos($token,'value=')+6);
$token = substr($token,1,strpos($token,'/>')-3);

//send post request to login_check with parameters (csrf_token included)
curl_setopt($ch, CURLOPT_URL, $checkurl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
    '_username' => $user,
    '_password' => $password,
    '_remember_me' => 'on', //if you use remember me functionality
    '_csrf_token' => $token
)));

curl_exec($ch);
if (curl_errno($ch)) die(curl_error($ch));

// В конце концов выполняем свой запрос. Тут уже можено задавать параметры такие как надо
$param = http_build_query(array(
    'limit' => 30,
    'offset' => 5,
    'dateFrom' => '2014-05-10',
    'dateTo' => '2014-05-14',
    'order' => 'asc',
));

curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
//request login protected urls
curl_setopt($ch, CURLOPT_URL, $reporturl);
curl_setopt($ch, CURLOPT_POST, true);
$report = curl_exec($ch);
if (curl_errno($ch)) die(curl_error($ch));

echo $report;

curl_close($ch);

?>


Re: REST API. Возможность получать данные из GuardSaaS

PostPosted: Wed May 18, 2016 8:20 am
by eguar
А можно ли как то в запросе получить id пользователя а не имя и фамилию?

Re: REST API. Возможность получать данные из GuardSaaS

PostPosted: Thu Jul 07, 2016 8:30 am
by GuardSaaS
Мы планируем добавить id пользователя в JSON

Re: REST API. Возможность получать данные из GuardSaaS

PostPosted: Wed Aug 10, 2016 9:24 am
by GuardSaaS
Поле employeeid добавлено в вывод результатов запроса.

Re: REST API. Возможность получать данные из GuardSaaS

PostPosted: Tue Sep 13, 2016 3:49 pm
by GuardSaaS
Добавлена возможность получения отчета без логина в систему по GET или POST запросу.
В запрос нужно добавить параметр appkey, например:

https://app.guardsaas.com/reports/events/export?order=asc&offset=10&date=2016-03-01&appkey=utPZHIuIv4WO4ia3X2u0VpglO9ityDwA

Значение appkey для Вашего аккаунта можно получить в разделе "Настройки отчетов" Кабинета - "Ключ доступа (для получения отчетов без логина)"

Ключ формируется автоматически при нажатии на кнопку "Сгенерировать новый ключ"
button.png
button.png (15.72 KiB) Viewed 345513 times

Далее ключ можно скопировать и вставить в код запроса.

Если у Вас возникнет подозрение, что ключ скомпроментирован, то нужно его сгенерировать снова.

Re: REST API. Возможность получать данные из GuardSaaS

PostPosted: Wed Dec 07, 2016 6:16 am
by GuardSaaS
Добавлена возможность загрузки файлов отчетов без логина по appkey.

Формат запроста такой:
Code: Select all
https://app.guardsaas.com/reports/export/{REPORT}/{FORMAT}?{PARAMETERS}&appkey=utPZHIuIv4WO4ia3K5s0VpglO9ityDwA


appkey - уникальный ключ, идентифицирующий аккаунт. Описание тут: viewtopic.php?f=2&t=292&p=388#p384

Возможные значения:

{REPORT}
  • events - Cобытия
  • timesheet - Табель
  • inout - Входы и Выходы
  • discipline - Дисциплина
  • statistics - Статистика
  • attendance - Посещаемость
  • movement - Перемещения

{FORMAT}
  • csv - текстовый, через запятую
  • xls - Excel
  • html - HTML
  • xml - XML
  • pdf - PDF

{PARAMETERS}
dateFrom=YYYY-MM-DD - дата начала отчета, месяц отчета
dateTo=YYYY-MM-DD - дата конца отчета (если нужна)

Примеры:

Code: Select all
Список событий
http://app.guardsaas.com/reports/export/events/xls?dateFrom=2016-12-05&dateTo=2016-12-06&appkey=utPZHIuIv4WO4ia3K2u0VpglO9ityDwA

Табель
http://app.guardsaas.com/reports/export/timesheet/html?dateFrom=2016-09-01&appkey=utPZHIuIv4WO4ia3K2u0VpglO9ityDwA

Дисциплина
http://app.guardsaas.com/reports/export/discipline/pdf?appkey=utPZHIuIv4WO4ia3K2u0VpglO9ityDwA