Отримання ID усіх доступних елементів
Часто в інтеграціях необхідно знати ID елементів, по яким робляться запити. Нижче пропонуємо bash-скрипт, який отримує ID усіх доступних елементів та записує їх в csv-файл.
Перед виконанням скрипта згенеруйте токен та запишіть його в файл token.txt, який має бути в тій самій папці що і виконуваний скрипт. Для прикладу взятий токен для користувача Demo_OVERSEER.

[ Відображення доступних об'єктів користувача Demo_OVERSEER ]
Отримавши токен, можна починати робити запити по API, але в кожному запиті має бути активний SID (session ID). Маючи токен його можна отримати настумим запитом:
#!/bin/bash
TOKEN_FILE="token.txt"
API_URL="https://hst-api.wialon.eu/wialon/ajax.html"
OUTPUT_FILE="wialon_elements.csv"
# === Перевірка токена ===
if [[ ! -f "$TOKEN_FILE" ]]; then
echo "❌ Файл token.txt не знайдено! Згенеруйте токен перед виконанням скрипту."
exit 1
fi
TOKEN=$(cat "$TOKEN_FILE" | tr -dc 'A-Za-z0-9')
if [[ -z "$TOKEN" ]]; then
echo "❌ Токен пустий!"
exit 1
fi
echo "🔐 Авторизація по токену..."
LOGIN_RESPONSE=$(curl -s -X POST "$API_URL" \
-d "svc=token/login" \
--data-urlencode "params={\"token\":\"$TOKEN\"}")
SID=$(echo "$LOGIN_RESPONSE" | jq -r '.eid')
if [[ "$SID" == "null" || -z "$SID" ]]; then
echo "❌ Помилка авторизації! Відповідь сервера:"
echo "$LOGIN_RESPONSE"
exit 1
fi
echo "✅ Авторизація успішна. SID: $SID"
echo "📦 Починаемо збір даних..."
# === Заголовок CSV ===
echo "type,id,name,resource_id" > "$OUTPUT_FILE"
# --- Ресурси
echo "🧾 Отримуємом список ресурсів..."
RESPONSE_RESOURCES=$(curl -s -X POST "$API_URL" \
-d "svc=core/search_items" \
--data-urlencode "params={\"spec\":{\"itemsType\":\"avl_resource\",\"propName\":\"\",\"propValueMask\":\"*\",\"sortType\":\"name\"},\"force\":1,\"flags\":1,\"from\":0,\"to\":0}" \
-d "sid=$SID")
echo "$RESPONSE_RESOURCES" | jq -r '.items[] | ["avl_resource", .id, .nm, ""] | @csv' >> "$OUTPUT_FILE"
RESOURCE_IDS=$(echo "$RESPONSE_RESOURCES" | jq -r '.items[].id')
# --- Для кожного ресурсу отримуємо геозони та шаблони звітів
for RES_ID in $RESOURCE_IDS; do
echo "🌍 Обробка ресурсу ID=$RES_ID..."
# --- Геозони
RESPONSE_ZONES=$(curl -s -X POST "$API_URL" \
-d "svc=core/search_item" \
--data-urlencode "params={\"id\":$RES_ID,\"flags\":4097}" \
-d "sid=$SID")
echo "Геозони:"
echo "$RESPONSE_ZONES"
echo "$RESPONSE_ZONES" | jq -r --arg rid "$RES_ID" '.item.zl[]? | ["avl_resource_geofence", .id, .n, $rid] | @csv' >> "$OUTPUT_FILE"
# --- Звіти
RESPONSE_ZONES=$(curl -s -X POST "$API_URL" \
-d "svc=core/search_item" \
--data-urlencode "params={\"id\":$RES_ID,\"flags\":8193}" \
-d "sid=$SID")
echo "Звіти:"
echo "$RESPONSE_ZONES"
echo "$RESPONSE_ZONES" | jq -r --arg rid "$RES_ID" '.item.rep[]? | ["avl_resource_report", .id, .n, $rid] | @csv' >> "$OUTPUT_FILE"
done
# --- Об'єкти (avl_unit)
echo "🚚 Отримуємо список об'єктів..."
RESPONSE_UNITS=$(curl -s -X POST "$API_URL" \
-d "svc=core/search_items" \
--data-urlencode "params={\"spec\":{\"itemsType\":\"avl_unit\",\"propName\":\"\",\"propValueMask\":\"*\",\"sortType\":\"name\"},\"force\":1,\"flags\":1,\"from\":0,\"to\":0}" \
-d "sid=$SID")
# У об'єктів є .r — це ID ресурса
echo "Об'єкти:"
echo "$RESPONSE_UNITS"
echo "$RESPONSE_UNITS" | jq -r '.items[] | ["avl_unit", .id, .nm, (.r // "")] | @csv' >> "$OUTPUT_FILE"
# --- Группи об'єктів (avl_unit_group)
echo "👥 Отримуємо группи об'єктів..."
RESPONSE_GROUPS=$(curl -s -X POST "$API_URL" \
-d "svc=core/search_items" \
--data-urlencode "params={\"spec\":{\"itemsType\":\"avl_unit_group\",\"propName\":\"\",\"propValueMask\":\"*\",\"sortType\":\"name\"},\"force\":1,\"flags\":1,\"from\":0,\"to\":0}" \
-d "sid=$SID")
# У групп тоже есть .r — ID ресурса
echo "Группи б'єктів:"
echo "$RESPONSE_GROUPS"
echo "$RESPONSE_GROUPS" | jq -r '.items[] | ["avl_unit_group", .id, .nm, (.r // "")] | @csv' >> "$OUTPUT_FILE"
# --- Користувачі
echo "👤 Отримуємо Користувачів..."
RESPONSE_USERS=$(curl -s -X POST "$API_URL" \
-d "svc=core/search_items" \
--data-urlencode "params={\"spec\":{\"itemsType\":\"user\",\"propName\":\"\",\"propValueMask\":\"*\",\"sortType\":\"name\"},\"force\":1,\"flags\":1,\"from\":0,\"to\":0}" \
-d "sid=$SID")
echo "Користувачі:"
echo "$RESPONSE_USERS"
echo "$RESPONSE_USERS" | jq -r '.items[] | ["user", .id, .nm, ""] | @csv' >> "$OUTPUT_FILE"
echo "✅ Готово! Усі дані збережено в $OUTPUT_FILE"
Скопіюйте скрипт в файл get_all_wialon_elementsv.sh. Надайте йому права на запуск: chmod +x gget_all_wialon_elementsv.sh
Для роботи скрипта необхідно:
- наявність записаного токена в файл token.txt, який знаходиться в тій самій папці що і скрипт
- встановлені додаткові компоненти: apt install curl jq -y
У заголовку запиту необхідно вказувати Content-Type:application/x-www-form-urlencoded.
Виконайте скрипт командою ./get_all_wialon_elementsv.sh, якщо усі вимоги виконано, отримаете вивід в файл wialon_elements.csv.
Результат роботи скрипта:
🔐 Авторизація по токену...
✅ Авторизація успішна. SID: 51e44560802daf709e48f0c772b4cb09
📦 Починаемо збір даних...
🧾 Отримуємом список ресурсів...
🌍 Обробка ресурсу ID=600688122...
Геозони:
{"item":{"nm":"Demo_OVERSEER","cls":3,"id":600688122,"mu":0,"zl":{"1":{"n":"Умань","d":"Шевченка вул., Городецьке 20325, Паланська ТГ, Уманський р-н, Черкаська обл., Україна","id":1,"f":112,"t":2,"w":50,"e":19054,"c":2568583984,"i":4294967295,"libId":0,"path":"","b":{"min_x":30.1401928758,"min_y":48.701288628,"max_x":30.2788805427,"max_y":48.7827876919,"cen_x":30.2095367092,"cen_y":48.7420381599},"ct":1736852589,"mt":1736852589},"2":{"n":"№13 Кліщинський поворот 104.02 га ДКС 4598 62 ТИС","d":"","id":2,"f":48,"t":2,"w":10,"e":62353,"c":2583691008,"i":4294967295,"libId":0,"path":"","b":{"min_x":32.6062573946,"min_y":49.4601125475,"max_x":32.6216566329,"max_y":49.4741783306,"cen_x":32.6139570137,"cen_y":49.4671454391},"ct":1748005881,"mt":1748005881},"3":{"n":"Вінниця","d":"Князів Коріатовичів вул., 45а, Вінниця 21050, Україна","id":3,"f":112,"t":3,"w":10147,"e":7228,"c":2163765610,"i":4294967295,"libId":0,"path":"","b":{"min_x":28.3369063477,"min_y":49.1380488596,"max_x":28.6155373712,"max_y":49.3205079634,"cen_x":28.4762218595,"cen_y":49.2292784115},"ct":1751533959,"mt":1751533959},"4":{"n":"гео1","d":"50.540836, 30.434521","id":4,"f":48,"t":3,"w":1000,"e":29819,"c":1427733296,"i":4294967295,"libId":0,"path":"","b":{"min_x":30.4204141521,"min_y":50.5318472441,"max_x":30.4486278479,"max_y":50.5498247559,"cen_x":30.434521,"cen_y":50.540836},"ct":1752355443,"mt":1752355443},"5":{"n":"Нова геозона","d":"О-230510, Гришки 32236, Вовковинецька ТГ, Хмельницький р-н, Хмельницька обл., Україна","id":5,"f":112,"t":3,"w":1000,"e":49570,"c":2568583984,"i":4294967295,"libId":0,"path":"","b":{"min_x":27.7380907457,"min_y":49.1752311392,"max_x":27.7655252543,"max_y":49.1932128608,"cen_x":27.751808,"cen_y":49.184222},"ct":1757594611,"mt":1757594611}},"zlmax":0,"uacl":60610577498111},"flags":4097}
Звіти:
{"item":{"nm":"Demo_OVERSEER","cls":3,"id":600688122,"mu":0,"rep":{"1":{"id":1,"n":"***Звіт по АЗС***","ct":"avl_unit","c":7322},"2":{"id":2,"n":"**Дані від тахографа_група**","ct":"avl_drivers_group","c":26843},"3":{"id":3,"n":"**Дані від тахографа_група**","ct":"avl_drivers_group","c":22878},"4":{"id":4,"n":"*Активність водія дані від Тахографа*","ct":"avl_driver","c":22680},"5":{"id":5,"n":"Груповий звіт","ct":"avl_unit_group","c":42084},"6":{"id":6,"n":"Загальний звіт (Поїздки+ Витрати)","ct":"avl_unit","c":34232},"7":{"id":7,"n":"Загальний звіт (Поїздки+ Витрати)","ct":"avl_unit","c":38606},"8":{"id":8,"n":"Новий звіт","ct":"avl_unit_group","c":26658},"9":{"id":9,"n":"Новий звіт","ct":"avl_drivers_group","c":57333},"10":{"id":10,"n":"Екодрайвінг","ct":"avl_unit","c":36559},"11":{"id":11,"n":"Мотогодини кінцеві","ct":"avl_unit_group","c":46445},"12":{"id":12,"n":"Планове ТО","ct":"avl_unit_group","c":43018},"13":{"id":13,"n":"Робота генератора","ct":"avl_unit","c":48971},"14":{"id":14,"n":"Робота генератора (Група)","ct":"avl_unit_group","c":43730}},"repmax":0,"uacl":60610577498111},"flags":8193}
🚚 Отримуємо список об'єктів...
Об'єкти:
{"searchSpec":{"itemsType":"avl_unit","propName":"","propValueMask":"*","sortType":"name","propType":"","or_logic":"0"},"dataFlags":1,"totalItemsCount":21,"indexFrom":0,"indexTo":0,"items":[{"nm":"Ford Tranzit СА3591КС","cls":2,"id":600883340,"mu":0,"uacl":16931},{"nm":"Новий об'єкт","cls":2,"id":601181071,"mu":0,"uacl":8576914489343},{"nm":"А 144 (353201357518205)","cls":2,"id":600988871,"mu":0,"uacl":877108680695},{"nm":"А 2599 (353201356433836)","cls":2,"id":600988804,"mu":0,"uacl":877108680695},{"nm":"А 2399 (353201357402517)","cls":2,"id":600973649,"mu":0,"uacl":16931},{"nm":"А 116 (353201353191072)","cls":2,"id":600973643,"mu":0,"uacl":877108680695},{"nm":"Renault Master AX1462MM","cls":2,"id":600964438,"mu":0,"uacl":16931},{"nm":"Peugeot Rifter CA7774BA","cls":2,"id":600944753,"mu":0,"uacl":825506152995},{"nm":"Peugeot Rifter CA0500IE","cls":2,"id":600944720,"mu":0,"uacl":824700846627},{"nm":"Mercedes Sprinter СА5551СМ","cls":2,"id":600933460,"mu":0,"uacl":16931},{"nm":"VW Transporter CA6845KE","cls":2,"id":600931264,"mu":0,"uacl":824700846627},{"nm":"Заправка АЗС","cls":2,"id":600371816,"mu":0,"uacl":824700846627},{"nm":"L200 ВА3331ВО","cls":2,"id":600802127,"mu":0,"uacl":824700846627},{"nm":"DAF СА7348ІР","cls":2,"id":600792068,"mu":0,"uacl":16931},{"nm":"Ford CA1750CP","cls":2,"id":600771966,"mu":0,"uacl":824700846627},{"nm":"Citroen CA4276IB","cls":2,"id":600771926,"mu":0,"uacl":824700846627},{"nm":"Чайко Марина","cls":2,"id":600645742,"mu":0,"uacl":824700846627},{"nm":"Skoda AA0330 OBD","cls":2,"id":600627540,"mu":0,"uacl":824700846627},{"nm":"Case 30618СА Дячок","cls":2,"id":600608866,"mu":0,"uacl":824700846627},{"nm":"Dacia Dokker 3 АХ8038МР","cls":2,"id":600590478,"mu":0,"uacl":824700846627},{"nm":"MAN ВА1834ВК","cls":2,"id":600457633,"mu":0,"uacl":824700846627}]}
👥 Отримуємо группи об'єктів...
Группи б'єктів:
{"searchSpec":{"itemsType":"avl_unit_group","propName":"","propValueMask":"*","sortType":"name","propType":"","or_logic":"0"},"dataFlags":1,"totalItemsCount":9,"indexFrom":0,"indexTo":0,"items":[{"nm":"Hecterra","cls":5,"id":600931441,"mu":0,"u":[],"uacl":8576914489343},{"nm":"Трекер з датчиком температури","cls":5,"id":600953485,"mu":0,"u":[600457633],"uacl":8576914489343},{"nm":"Слідкування","cls":5,"id":600953486,"mu":0,"u":[600645742],"uacl":8576914489343},{"nm":"Трекери з CAN","cls":5,"id":600953487,"mu":0,"u":[600590478,600771926,600771966,600802127,600944720,600944753],"uacl":8576914489343},{"nm":"Трекер OBD","cls":5,"id":600953525,"mu":0,"u":[600627540],"uacl":8576914489343},{"nm":"Трекери з ДРП","cls":5,"id":600983449,"mu":0,"u":[600457633],"uacl":8576914489343},{"nm":"Трекер з Лічильником","cls":5,"id":600983450,"mu":0,"u":[600608866],"uacl":8576914489343},{"nm":"Підключення до АЗС","cls":5,"id":600983451,"mu":0,"u":[600371816],"uacl":8576914489343},{"nm":"Генератори","cls":5,"id":601325299,"mu":0,"u":[600973643,600973649,600988804,600988871],"uacl":8576914489343}]}
👤 Отримуємо Користувачів...
Користувачі:
{"searchSpec":{"itemsType":"user","propName":"","propValueMask":"*","sortType":"name","propType":"","or_logic":"0"},"dataFlags":1,"totalItemsCount":1,"indexFrom":0,"indexTo":0,"items":[{"nm":"Allan Matt","cls":1,"id":600935996,"mu":0,"uacl":32571391}]}
✅ Готово! Усі дані збережено в wialon_elements.csv
Отриманий файл wialon_elements.csv:
type,id,name,resource_id
"avl_resource",600688122,"Demo_OVERSEER",""
"avl_resource_geofence",1,"Умань","600688122"
"avl_resource_geofence",2,"№13 Кліщинський поворот 104.02 га ДКС 4598 62 ТИС","600688122"
"avl_resource_geofence",3,"Вінниця","600688122"
"avl_resource_geofence",4,"гео1","600688122"
"avl_resource_geofence",5,"Нова геозона","600688122"
"avl_resource_report",1,"***Звіт по АЗС***","600688122"
"avl_resource_report",2,"**Дані від тахографа_група**","600688122"
"avl_resource_report",3,"**Дані від тахографа_група**","600688122"
"avl_resource_report",4,"*Активність водія дані від Тахографа*","600688122"
"avl_resource_report",5,"Груповий звіт","600688122"
"avl_resource_report",6,"Загальний звіт (Поїздки+ Витрати)","600688122"
"avl_resource_report",7,"Загальний звіт (Поїздки+ Витрати)","600688122"
"avl_resource_report",8,"Новий звіт","600688122"
"avl_resource_report",9,"Новий звіт","600688122"
"avl_resource_report",10,"Екодрайвінг","600688122"
"avl_resource_report",11,"Мотогодини кінцеві","600688122"
"avl_resource_report",12,"Планове ТО","600688122"
"avl_resource_report",13,"Робота генератора","600688122"
"avl_resource_report",14,"Робота генератора (Група)","600688122"
"avl_unit",600883340,"Ford Tranzit СА3591КС",""
"avl_unit",601181071,"Новий об'єкт",""
"avl_unit",600988871,"А 144 (353201357518205)",""
"avl_unit",600988804,"А 2599 (353201356433836)",""
"avl_unit",600973649,"А 2399 (353201357402517)",""
"avl_unit",600973643,"А 116 (353201353191072)",""
"avl_unit",600964438,"Renault Master AX1462MM",""
"avl_unit",600944753,"Peugeot Rifter CA7774BA",""
"avl_unit",600944720,"Peugeot Rifter CA0500IE",""
"avl_unit",600933460,"Mercedes Sprinter СА5551СМ",""
"avl_unit",600931264,"VW Transporter CA6845KE",""
"avl_unit",600371816,"Заправка АЗС",""
"avl_unit",600802127,"L200 ВА3331ВО",""
"avl_unit",600792068,"DAF СА7348ІР",""
"avl_unit",600771966,"Ford CA1750CP",""
"avl_unit",600771926,"Citroen CA4276IB",""
"avl_unit",600645742,"Чайко Марина",""
"avl_unit",600627540,"Skoda AA0330 OBD",""
"avl_unit",600608866,"Case 30618СА Дячок",""
"avl_unit",600590478,"Dacia Dokker 3 АХ8038МР",""
"avl_unit",600457633,"MAN ВА1834ВК",""
"avl_unit_group",600931441,"Hecterra",""
"avl_unit_group",600953485,"Трекер з датчиком температури",""
"avl_unit_group",600953486,"Слідкування",""
"avl_unit_group",600953487,"Трекери з CAN",""
"avl_unit_group",600953525,"Трекер OBD",""
"avl_unit_group",600983449,"Трекери з ДРП",""
"avl_unit_group",600983450,"Трекер з Лічильником",""
"avl_unit_group",600983451,"Підключення до АЗС",""
"avl_unit_group",601325299,"Генератори",""
"user",600935996,"Allan Matt",""
Для роботи з csv-файлами найкраще використовувати Google Таблиці. Вигляд файлу wialon_elements.csv в Google Таблицях:

[ Відображення таблиці wialon_elements.csv в Google Таблицях ]