Как работать с Webhook-уведомлениями

Webhook — это способ автоматической передачи данных  о событиях из системы во внешний сервис или на ваш сервер.
Например, если транспорт превысил скорость, система сама отправит запрос на указанный вами адрес и передаст информацию о событии.

Как работают Webhook-уведомления

1. Вы указываете URL-адрес — куда отправлять данные
2. При срабатывании уведомления система отправляет POST-запрос с JSON
3. Ваш сервер принимает данные и обрабатывает их так, как нужно
Перед началом убедитесь, что:
— URL-адрес корректный и доступен
— сервер отвечает кодом 200 (OK)
— если сервер не отвечает или возвращает ошибку, адрес временно попадёт в чёрный список
 

Как настроить Webhook

1. Перейдите в создание или редактирование уведомления
2. В блоке «Тип и название» выберите способ отправки Webhook
3. Чтобы настроить Webhook-уведомления, нажмите на поле редактирования — откроется окно Webhook Details, где задаются параметры отправки данных.
В окне Webhook Details вы увидите три поля:
Как работать с Webhook-уведомлениями
1. URL
Укажите адрес, на который будут отправляться данные.
2. Header (Заголовок)
Здесь указывается формат передаваемых данных. По умолчанию уже стоит нужное значение:
["ContentType: application/json"]
3. Body (Тело запроса)
Это данные, которые будут отправляться. По умолчанию используется такой шаблон:
{
 "agent_id": "%AGENTID%",
 "vehiclenumber": "%VEHNUM%",
 "ts": "%TS%",
 "lat": "%LAT%",
 "lon": "%LON%",
 "speed": "%SPEED%",
 "data": "%DATA%",
 "zone": "%ZONE%",
 "driver": "%DRIVER%"
}
4. Переменные для тела запроса
Вы можете изменять или дополнять тело запроса, используя допустимые переменные из списка справа.
Соблюдайте формат записи — "value":  "%VALUE%". Если синтаксис будет нарушен, Webhook работать не будет.
Допустимые переменные
  Переменная
  Что передаёт
  %ACCOUNTID%
  ID аккаунта
  %AGENTID%
  ID объекта
  %VEHNUM%
  Номер машины
  %TS%
  Метка времени (timestamp)
  %DATETIME%
  Дата и время
  %LAT%
  Широта
  %LON%
  Долгота
  %SPEED%
  Скорость
  %ODO%
  Пробег (по датчику)
  %DATA%
  Данные уведомления
  %ZONE%
  Геозона
  %ZONE_ID%
  ID первой геозоны
  %ZONE_NAME%
  Название первой геозоны
  %DRIVER%
  Водитель
  %MAXSPEED%
  Максимальная скорость (для уведомлений о превышении)
  %DUR% 
  Длительность превышения
  %SPEEDLIMIT% 
  Установленный лимит скорости (Контроль скорости)
 

Как подставить значение датчика

Если нужно передать данные конкретного датчика:
1. Откройте вкладку «Датчики»
Как работать с Webhook-уведомлениями
  • Название датчика
2. Скопируйте точное название датчика
3. Вернитесь в окно настроек Webhook и в поле Body вставьте переменную в формате: %Название датчика%. Например, если датчик называется Fuel sensor status, напишите %Fuel sensor status%.

Как получить сырые данные

Можно передавать данные напрямую от устройства:
1. Перейдите во вкладку «Точки»
2. Найдите параметр в колонке «Необработанные данные»
3. Вставьте его в поле Body в окне Webhook  в формате %Имя параметра%. Например, если параметр называется Valid, напишите %Valid%.
 

Пример запроса

Когда уведомление сработает, на ваш сервер придут данные примерно в таком виде:
{
 "agent_id": 4328,
 "ts": 1545254055,
 "data": ["У286НМ 67", "Parkingdur", "2", "1", "мм"]
}
Набор данных зависит от того, какие переменные вы указали в теле запроса и какой тип уведомления настроен.