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 · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · 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 bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

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

Сервер находится по адресу http://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=... с именем адресата. Если адресат не зарегистрирован, сервер вернёт ошибку.

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