Skip to content
Мои токены Поддержка
Чат для вопросов по API Мгновенно ответим на ваши вопросы
api@ati.su Электронная почта техподдержки
Тикетная система Оставить заявку на отдел "Консультанты по интеграции (API)"
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя

АТИ Мессенджер

«АТИ Мессенджер» (далее Мессенджер) — сервис для обмена сообщениями, документами, файлами между пользователями ATI.SU. С помощью мессенджера можно договориться о перевозке, отправить фото, электронные документы.

Возможности Мессенджера

  • Создание диалогов между пользователями ATI.SU
  • Создание диалогов из приложения АТИ Водитель
  • Отправка текстовых сообщений
  • Отправка файлов, изображений, документов ATI.SU, геометок
  • Общение в открытых и закрытых групповых чатах
  • Общение с подписчиками в каналах

Типичные сценарии использования мессенджера

Диалог

  • Создать диалог по конкретному грузу или из интерфейса мессенджера с определенным пользователем
  • Отправить сообщение
  • Закрепить диалог
  • Заблокировать/разблокировать пользователя
  • Скрыть диалог

Групповой чат и канал

  • Создать групповой чат или канал
  • Отправить приглашения участникам ATI.SU
  • Вступить в чат по приглашению
  • Исключить участника

API для работы с АТИ Мессенджером

API Мессенджера предоставляет набор методов, необходимых для получения списка чатов пользователя ATI.SU, получения сообщений в чате, отправки сообщения в чат и другие. Благодаря этому API можно организовать интеграцию между мессенджером и сторонней системой.

Используемые термины

Чат - абстрактная сущность чата в мессенджере, любой чат имеет одну или более подписку.

Подписка - связка пользователя и конкретного канала. Диалог, например, состоит из 2-х подписок, групповой чат - из N подписок. Список чатов, отображающийся в интерфейсе, есть список подписок. Подписка так же содержит опции пользователя относительно этого чата (скрыт, заблокирован, закреплен и т.п.).

Диалог - чат между двумя участниками; диалог нельзя удалить, только скрыть.

Групповой чат - чат между группой участников, пользователи вступают чат по приглашению; в закрытых чатах приглашать могут только администраторы, в открытых - все участники.

Администратор - создатель и владелец группового чата. В закрытых группах только администратор может приглашать пользователей в чат.

Канал - групповой чат, писать в который может только администратор.

История - список сообщений чата.

Хвост - последнее сообщение в истории (отображается в каждом чате из списка).

Пользователь ATI.SU - участник ATI.SU, обладающий лицензией и имеющий доступ ко всем сервисам ATI.SU.

Псевдопользователь(АТИ Водитель) - пользователь чата, не являющийся полноценным участником ATI.SU, но имеющий возможность быть участником как диалога, так и группового чата в мессенджере.

ID аккаунта ATI.SU - уникальный идентификатор аккаунта в ATI.SU, для АТИ водителя имеет формат driver_{номер телефона}.

User ID - {ID аккаунта ATI.SU}.{ID контакта}, у АТИ водителя контакт ID контакта всегда 0.

АТИ код - код участника ATI.SU отображающийся в шапке сайта и в профиле участника, может совпадать с ID аккаунта. Код АТИ Водителя совпадает с ID.

Структура подписки

Подписка является ключевой сущностью в чате, большинство АПИ методов так или иначе отдают объект подписки в качестве ответа. Некоторые поля в теле подписки могут дублироваться или казаться избыточными, так же типы некоторых полей могут вызывать вопросы - все это связано с поддержкой старых версий, в новых версиях эти рудименты исчезнут.

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

Имя поляОписаниеТипПримерДиалогГруппаОбязательное поле
idID чатаstring28ba1e3b16974c32989b1ададада
channel_typeТип чатаstringgroupдадада
nameНазвание чатаstringmy awesome groupдадада
descriptionОписание чатаstringmy awesome group descriptionдадада
ownerUser ID владельца чатаstring890386.0дадада
userUser ID владельца подпискиstring1423414.0дадада
ctimeДата и время создания чата (GMT+3)string2021-01-22T11:25:15+00:00дадада
utimeДата и время последнего обновления подписки (GMT+3)string2021-03-24T08:51:53+00:00дадада
dtsUTC Timestamp последнего прочитанного пользователем сообщенияinteger1611314906749707данетда
utsUTC Timestamp последнего обновления подпискиinteger1622639302000000дадада
del_tsUTC Timestamp последней очистки историиinteger1622639302000000данетнет
tsUTC Timestamp последнего сообщенияinteger1622639302435456дадада
unreadКоличество непрочитанных сообщений в чатеstring0дадада
partnerАТИ Код партнераstring777данетда
partner_fullАТИ Код партнера с ID контактаstring777.0данетда
partner_idID Аккаунта АТИ партнераstring2716044данетда
usersСписок {АТИ код}.{ID контакта} участников чвтвlist[“14234140.0”, “777.0”]данетда
countКол-во участниковinteger3нетдада
inviteФлаг подписки с приглашениемbooltrueнетданет
removedФлаг подписки на удаленный каналbooltrueнетданет
excludedФлаг исключенной подпискиbooltrueнетданет
pinnedФлаг прикрепленной подпискиstring1даданет
lockedФлаг подписки с заблокированным юзеромstring1данетнет
complaintID пожаловавшегося пользователяstring1423414.0данетнет
complaint_reasonПричина блокировкиstringspamданетнет
tailХвост чатаdict{…}даданет

Описание методов

Чаты

Создание чата
post /messenger/1.1/chats/
Запрос
Модель
{...}
channel_type*: enum
[dialog, channel, group, ati_driver]

тип чата

name*: string

имя групп.чата/собеседника

description*: string

описание

id: string

{ID аккаунта партнера}.{id контакта} (только для типов dialog, ati_driver)

ati_id: string

{код в ATI.SU партнера}.{id контакта} (только для типов dialog, ati_driver)

is_open: boolean

открытый/закрытый (только для типов channel, group)

members: [string]

alias'ы (коды в ATI.SU) партнеров с contact_id (только для типов channel, group)

}
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"channel_type":"group","name":"Моя группа","is_open":true,"description":"Описание моей группы"}'
Ответ
200 Данные подписки
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}
400 Ошибка валидации

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

Диалог:

  • При добавлении диалога создастся 2 подписки, но подписка собеседника будет скрыта пока в нее не напишут.
  • Между двумя одинаковыми пользователями возможен только один диалог, при повторном создании будет возвращена та же самая подписка.
  • Диалог можно создать двумя способами: используя ID аккаунта либо АТИ код, в зависимости от способа необходимо использовать поля id и ati_id соответственно. Не стоит указывать оба поля при запросе.

Группа, канал:

  • По умолчанию при добавлении группы создастся чат с одним юзером в качестве участника (в ответ вернется его подписка).
  • Можно создать чат и одновременно пригласить нескольких пользователей указав их списком в поле members.
Обновление мета-данных группового чата
put /messenger/1.1/chats/{chat_id}/
Запрос
Модель
{...}
name: string

имя групп.чата

description: string

описание

}
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"Новое название группы","description":"Новое описание моей группы"}'
Ответ
200 Обновленные данные подписки
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}
400 Ошибка валидации
403 Только владелец канала/группы может выполнять это действие
404 Чат не найден

Метод используется для изменения имени или описания группового чата администратором.

Удаление группового чата владельцем
delete /messenger/1.1/chats/{chat_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
204 Канал удален
403 Пользователь не является владельцем группового чата
404 Не найден групповой чат или пользователь в этом чате

При удалении канала или группы все подписки участников будут помечены флагом removed.

Подписки

Получение всех подписок пользователя
get /messenger/1.1/subscriptions/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/subscriptions/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Подписки пользователя
[{...}]
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}]

Метод возвращает постраничный список подписок.

Получение информации о подписке
get /messenger/1.1/subscriptions/{chat_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/subscriptions/{chat_id}/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Подписки пользователя
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}
404 Канал не найден

Участники групповых чатов

Получение списка участников
get /messenger/1.1/chats/{chat_id}/users/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/users/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Список участников
[{...}]
id: string

id юзера (c contact_id)

code: string

alias юзера (без contact_id)

name: string

имя юзера

company: string

название компании

email: string

email юзера

fax: string

факс юзера

icq: string

icq юзера

mobile: string

номер мобильного телефона юзера

phone: string

номер телефона юзера

skype: string

skype юзера

}]
403 У вас нет прав. Только администратор может совершать это действие.
404 Канал не найден, Пользователь в групповом чате не найден

С помощью параметров метода можно запрашивать как приглашенных так и текущих участников группового чата.

Приглашение пользователя в групповой чат
post /messenger/1.1/chats/{chat_id}/users/{user_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/users/{user_id}/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Подписка добавленного пользователя
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}
400 Пользователь не является владельцем группового чата, Канал был удален, Код пользователя задан в неверном формате
403 У вас нет прав. Только администратор может совершать это действие.
404 Группа не найдена

При вызове метода у приглашенного пользователя создастся подписка с флагом invite.

Исключение участника из группового чата
delete /messenger/1.1/chats/{chat_id}/users/{user_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/users/{user_id}/' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
204 Подписка удалена
400 Код пользователя задан в неверном формате
403 Пользователь не является владельцем группового чата, Групповой чат был удален
404 Канал не найден

При вызове метода у исключенного пользователя в подписку добавится флаг excluded.

Принятие приглашения в групповой чат
patch /messenger/1.1/subscriptions/{chat_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/subscriptions/{chat_id}/' \
-X 'PATCH' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
204 Приглашение принято
400 У пользователя нет приглашения
404 Канал не найден

После принятия приглашения флаг invite должен пропасть из подписки.

Удаление себя из группового чата или удаление приглашения
delete /messenger/1.1/subscriptions/{chat_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/subscriptions/{chat_id}/' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
204 Подписка на групповой чат удалена
403 Нельзя удалить администратора группового чата
404 Канал не найден

При вызове метода подписка удалится из базы данных.

Сообщения

Получение истории сообщений
get /messenger/1.1/chats/{chat_id}/history/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/history/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 список сообщения
[{...}]
channel: string

id чата

delivered: boolean

доставлено/недоставлено

stamp: string

таймстемп (isoformat) сообщения

text: string

текст сообщения

ts: integer

таймстемп (unix) сообщения

id: string

id сообщения

user: string

id отправителя, отстутствует в системных событиях

event: enum
[join, exclude, quit, invite, create, system_message]

тип системного события

from: string

Имя отправителя сообщения

document: string

ссылка на документ в атидоках

document_mimetype: string
document_size: integer
file_id: string

id загруженного в filestorage файла

file_mimetype: string
file_name: string
file_size: integer
}]

Метод возвращает постраничный список сообщений.

Отправка сообщения
post /messenger/1.2/chats/{chat_id}/messages
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.2/chats/{chat_id}/messages' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: multipart/form-data; boundary=boundary'
Ответ
200 json сообщения
{...}
channel: string

id чата

delivered: boolean

доставлено/недоставлено

stamp: string

таймстемп (isoformat) сообщения

text: string

текст сообщения

ts: integer

таймстемп (unix) сообщения

id: string

id сообщения

user: string

id отправителя, отстутствует в системных событиях

event: enum
[join, exclude, quit, invite, create, system_message]

тип системного события

from: string

Имя отправителя сообщения

document: string

ссылка на документ в атидоках

document_mimetype: string
document_size: integer
file_id: string

id загруженного в filestorage файла

file_mimetype: string
file_name: string
file_size: integer
}

Метод отправки сообщения. Поддерживаются текстовые сообщения, сообщения с картинкой или файлом, а также сообщения с геометкой. Одно сообщение должно содержать либо текст, либо одно вложение (картинку или файл), либо геометку.

Для отправки картинки обязательно прислать одновременно image, image_height и image_width.

Для отправки геометки обязательно прислать одновременно geo_longitude и geo_latitude.

Получение прикреплённого к сообщению изображения
get /messenger/1.2/messages/{message_id}/image
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.2/messages/{message_id}/image' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Картинка, прикреплённая к сообщению

Получение изображения, прикреплённого к сообщению. Работает только для сообщений, у которых image_id не равен null. Использовать image_id не нужно: достаточно передать идентификатор сообщения message_id.

Получение прикреплённого к сообщению файла
get /messenger/1.2/messages/{message_id}/file
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.2/messages/{message_id}/file' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Файл, прикреплённый к сообщению

Получение файла, прикреплённого к сообщению. Работает только для сообщений, у которых file_id не равен null. Использовать file_id не нужно: достаточно передать идентификатор сообщения message_id.

Прочие методы

Изменение настроек подписки
post /messenger/1.1/chats/{chat_id}/settings/
Запрос
Модель
{...}
pin: boolean
hidden: boolean
}
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/settings/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"pin":true,"hidden":false}'
Ответ
200 Возвращает объект подписки с обновленными настройками
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}
400 Ошибка валидации
403 Скрыть канал можно только после принятия приглашения
404 Канал не найден

Изменение настроек подписки (скрыть/закрепить).

Приглашение нескольких пользователей в групповой чат
post /messenger/1.1/chats/{chat_id}/users/
Запрос
Модель
{...}
members*: [string]
}
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/users/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"members":["string"]}'
Ответ
200 Подписки добавленных пользователя
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}
400 Пользователь не является владельцем группового чата, Канал был удален, Код пользователя задан в неверном формате
403 У вас нет прав. Только администратор может совершать это действие.
404 Группа не найдена

По умолчанию используются id-шники аккаунтов, но если флаг ati_id выставлен в true, будут использованы именно коды.

Удаление сообщения из диалога
delete /messenger/1.1/chats/{chat_id}/messages/{ts_or_id}/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/messages/{ts_or_id}/' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Возвращает объект подписки с обновленным tail и ts
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}

Удалять сообщения можно в диалогах и только если они не прочитаны собеседником. В качестве идентификатора можно использовать как непосредственно id сообщения так и его временную метку в UTC.

Очистка истории
delete /messenger/1.1/chats/{chat_id}/history/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/chats/{chat_id}/history/' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Возвращает объект подписки с обновленным tail и ts
{...}
id: string

id чата

channel_type: string

тип чата

name: string

Название чата (имя собеседника)

ctime: string

время создания чата (iso)

utime: string

время последнего изменения (iso)

owner: string

создатель чата

description: string

описание чата (для диалогов - название фирмы)

users: [string]

alias участника (c contact_id)

partner: string

id партнера (без contact_id)

partner_id: string

id партнера (c contact_id)

partner_full: string

alias партнера (c contact_id)

count: integer

количество учасчтников группового чата (для диалогов - null)

dts: integer

timestamp последней очистки сообщений

unread: string

количество непрочитанных сообщений

user: string

id юзера (c contact_id)

uts: integer

timestamp последнего изменения

short_url: string

короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа

}

Очистить переписку можно только в диалогах, причем история изменится лишь для владельца подписки, у собеседника все останется как есть. При вызове метода в подписку добавится поле del_ts, содержащее временную метку, начиная с которой сообщения не будут возвращаться в методе history.

Получение счетчика чатов с непрочитанными сообщениями
get /messenger/1.1/inbox/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/inbox/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Счетчик непрочитанных
{...}
unread: integer
}

Метод вернет количество чатов с непрочитанными сообщениями.

Получение количества непрочитанных чатов по типам (все/диалоги/групповые чаты)
get /messenger/1.1/subscriptions/unread/
Запрос
Пример запроса
curl 'https://api.ati.su/messenger/1.1/subscriptions/unread/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Данные по количеству непрочитанных чатов по типу
{...}
all: integer
dialogs: integer
groups: integer
}

Метод аналогичный inbox, но счетчики будут разбиты по типам чатов.