iBusAPI

Первый запрос

Три шага - от названия остановки до транспорта, который к ней едет. Для curl ничего ставить не нужно; для JavaScript нужен Node.js 18 или новее, для Python хватает стандартной библиотеки.

0. Получить ключ#

После одобрения заявки создайте ключ в кабинете разработчика. Он показывается один раз. Храните его на сервере, например в переменной окружения:

shell
export IBUS_API_KEY='ibk_live_k_…'

Все примеры ниже передают его в заголовке Authorization. Никогда не помещайте ключ в адрес запроса, на веб-страницу или в пакет приложения.

1. Найти остановку#

Ищите по названию на иврите, английском или арабском либо по коду с таблички остановки.

curl
curl -H "Authorization: Bearer $IBUS_API_KEY" "https://api.ibusisrael.online/api/transport/stops/search?q=Azrieli&limit=3&lang=en"
200 application/json (сокращено)
[
  {"stop_code": "34219", "stop_name": "Azrieli Mall", "stop_lat": 31.899117, "stop_lon": 35.007414},
  {"stop_code": "21472", "stop_name": "Azrieli Mall/Menahem Begin Road", "stop_lat": 32.074584, "stop_lon": 34.790607}
]

stop_code - публичный код. У нескольких остановок может быть одно название: сверьтесь с координатами или ищите по коду.

2. Запросить прибытия#

curl
curl -H "Authorization: Bearer $IBUS_API_KEY" "https://api.ibusisrael.online/api/transport/v2/stop/21472/arrivals?limit=5&lang=en"

3. Прочитать свежесть каждой строки#

freshness.stateКак показывать
liveПрогноз в реальном времени: expected_in_min, expected_arrival_utc.
scheduled_confirmedВремя по расписанию: freshness.scheduled_arrival_utc. Сообщение самой машины устарело, расписание подтверждает рейс.
stale_observationМашину видели age_sec секунд назад; это не живой прогноз. Если eta_hidden = true, время не показывайте совсем.
unknown_ageИсточник не дал пригодного времени; не выдавайте строку за живую.

Поле конверта source_state говорит, ответил ли источник: ok, no_data (ответил, но пусто) или unavailable.

Ключи - для серверов. Веб-страница или мобильное приложение обращается к вашему серверу, а сервер - к iBus с ключом; кросс-доменные запросы из браузера разрешены только приложению iBus.

Дальше#

Руководство
↑ ↓ перейтиEnter открытьEsc закрыть