RU:JOSM/Plugins/GeoChat/API

From OpenStreetMap Wiki
< RU:JOSM‎ | Plugins‎ | GeoChat
Jump to: navigation, search
Доступные языки — JOSM/Plugins/GeoChat/API
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português português do Brasil română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

Интерфейс общения с сервером. Всё идёт через HTTP-запросы GET. Название действия передаётся в параметре action, также для большинства запросов нужны координаты lat и lon (в WGS-84). Возвращается либо список сообщений, либо сообщение об ошибке/успехе. Формат всех ответов -- json-хэш.

Сервер находится по адресу https://zverik.dev.openstreetmap.org/osmochat.php.

Регистрация

Для общения пользователи должны регистрироваться. Их имена в системе нужны для взаимодействия, а также для идентификации себя в чате.

?action=register&lat=...&lon=...&name=...

Регистрирует пользователя с именем name, находящегося по указанным координатам. Вернёт ошибку, если имя уже занято. Имена очищаются после выхода из системы, либо спустя час после последнего запроса данных. При успешном завершении возвращает в поле uid идентификатор пользователя, который требуется для всех остальных функций.

?action=logout&uid=...

Освобождает идентификатор пользователя и его имя.

?action=whoami&uid=...

Возвращает имя зарегистрированного пользователя. Полезно, если идентификаторы сохраняются между сессиями.

Загрузка сообщений

?action=get&lat=...&lon=...&uid=...

Ищет все сообщения в некотором радиусе от указанной точки. Радиус задаётся сервером и в настоящее время равен 20 километрам. Возвращает JSON-хэш с тремя массивами: messages с публичными сообщениями, private с личными сообщениями и users со списком и координатами ближайших пользователей.

Сообщения отсортированны по времени (новые в конце), каждое сообщение — хэш со следующими значениями:

Ключ Что хранит
id Уникальный идентификатор сообщения. Нумерация для личных и общих сообщений сквозная. Рекомендуется использовать параметр &lastid=... для подгрузки новых сообщений; в нём указывается идентификатор последнего полученного сообщения.
lon, lat Координаты сообщения.
time Время отправки сообщения в формате DD-MM-YYYY HH:MM:SS. Обычно в зоне UTC, но можно "сверить часы", послав серверу запрос ?action=now
timestamp Метка времени в формате UNIX.
author Логин автора сообщения.
message Само сообщение
incoming false, если сообщение отправлено пользователем, делающим запрос.

Для личных сообщений добавлено поле recipient с именем пользователя, которому адресовано сообщение.

Каждый элемент массива users хранит три значения: имя в поле name и координаты в lat, lon.

Добавление сообщения

?action=post&lat=...&lon=...&uid=...&message=...

Отправляет на сервер сообщение по заданным координатам. Для личных сообщений нужно добавить параметр &to=... с именем адресата. Если адресат не зарегистрирован, сервер вернёт ошибку.

Сообщения автоматически удаляются из базы через несколько часов после отправки.