Перейти до основного вмісту

GEOFENCES ID

Взаємодія з геозонами пристроїв відбувається через їх ID. Як отримати перелік ID геозон (разом з назвою та описом), доступних користувачу, наведено в bash-скрипті нижче.

#!/bin/bash

URL="https://my.m2m.eu"
API_URL="api/geofences"
TOKEN_FILE="token.txt"
OUTPUT_FILE="geofences_id.csv"

# Перевіряємо валідність токена та оновлюємо за потреби. Скрипт get_update_token.sh має бути в тій самій папці що і виконуваний скрипт.
#./get_update_token.sh

# Читаем токен
if [[ ! -f "$TOKEN_FILE" ]]; then
echo "Файл $TOKEN_FILE не найден"
exit 1
fi

TOKEN=$(<"$TOKEN_FILE")

# Запит
RESPONSE=$(curl -s -X GET "$URL/$API_URL" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json")

# Перевіряємо JSON
if ! echo "$RESPONSE" | jq . >/dev/null 2>&1; then
echo "Помилка: сервер повернув невалідний JSON:"
echo "$RESPONSE"
exit 1
fi

# Вивід у файл в форматі CSV з роздільним знаком ";"
echo "id;name;description" > $OUTPUT_FILE
echo "$RESPONSE" | jq -r '.items[] | "\(.id);\(.name);\(.description)"' >> $OUTPUT_FILE

# Покращений вивід в CSV з роздільним знаком ","
#echo "id,name,description" > $OUTPUT_FILE
#echo "$RESPONSE" | jq -r '.items[] | [.id, .name, .description] | @csv' >> $OUTPUT_FILE

Скопіюйте скрипт в файл get_geofences_id.sh, надайте права на виконання chmod +x get_geofences_id.sh. Виконайте скрипт командою ./get_geofences_id.sh.

Для виконання скрипта необхідно:

  • серидовище Linux Debian
  • встановлені додаткові компоненти: apt install curl jq -y
  • наявність файлу token.txt з активним токеном в папці зі скриптом
  • для перевірки та оновлення токена покладіть скрипт get_update_token.sh в папку з виконуваним скриптом та приберіть коментар # на початку рядка

Результат виводу:

id;name;description
90;Гідропарк;Гідропарк, м. Київ
91;Долобецький острів;Долобецький острів, м. Київ
89;Русанівка;Русанівка, м. Київ
385;Черкаси;

Для роботи з CSV файлами рекомендується використовувати Google Tables.