АТИ Мессенджер
«АТИ Мессенджер» (далее Мессенджер) — сервис для обмена сообщениями, документами, файлами между пользователями 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.
Структура подписки
Подписка является ключевой сущностью в чате, большинство АПИ методов так или иначе отдают объект подписки в качестве ответа. Некоторые поля в теле подписки могут дублироваться или казаться избыточными, так же типы некоторых полей могут вызывать вопросы - все это связано с поддержкой старых версий, в новых версиях эти рудименты исчезнут.
Подписки диалогов и групповых чатов выглядят похоже, но имеют некоторые отличия.
Имя поля | Описание | Тип | Пример | Диалог | Группа | Обязательное поле |
---|---|---|---|---|---|---|
id | ID чата | string | 28ba1e3b16974c32989b1а | да | да | да |
channel_type | Тип чата | string | group | да | да | да |
name | Название чата | string | my awesome group | да | да | да |
description | Описание чата | string | my awesome group description | да | да | да |
owner | User ID владельца чата | string | 890386.0 | да | да | да |
user | User ID владельца подписки | string | 1423414.0 | да | да | да |
ctime | Дата и время создания чата (GMT+3) | string | 2021-01-22T11:25:15+00:00 | да | да | да |
utime | Дата и время последнего обновления подписки (GMT+3) | string | 2021-03-24T08:51:53+00:00 | да | да | да |
dts | UTC Timestamp последнего прочитанного пользователем сообщения | integer | 1611314906749707 | да | нет | да |
uts | UTC Timestamp последнего обновления подписки | integer | 1622639302000000 | да | да | да |
del_ts | UTC Timestamp последней очистки истории | integer | 1622639302000000 | да | нет | нет |
ts | UTC Timestamp последнего сообщения | integer | 1622639302435456 | да | да | да |
unread | Количество непрочитанных сообщений в чате | string | 0 | да | да | да |
partner | АТИ Код партнера | string | 777 | да | нет | да |
partner_full | АТИ Код партнера с ID контакта | string | 777.0 | да | нет | да |
partner_id | ID Аккаунта АТИ партнера | string | 2716044 | да | нет | да |
users | Список {АТИ код}.{ID контакта} участников чвтв | list | [“14234140.0”, “777.0”] | да | нет | да |
count | Кол-во участников | integer | 3 | нет | да | да |
invite | Флаг подписки с приглашением | bool | true | нет | да | нет |
removed | Флаг подписки на удаленный канал | bool | true | нет | да | нет |
excluded | Флаг исключенной подписки | bool | true | нет | да | нет |
pinned | Флаг прикрепленной подписки | string | 1 | да | да | нет |
locked | Флаг подписки с заблокированным юзером | string | 1 | да | нет | нет |
complaint | ID пожаловавшегося пользователя | string | 1423414.0 | да | нет | нет |
complaint_reason | Причина блокировки | string | spam | да | нет | нет |
tail | Хвост чата | dict | {…} | да | да | нет |
Описание методов
Чаты
Создание чата post /messenger/1.1/chats/
тип чата
имя групп.чата/собеседника
описание
{ID аккаунта партнера}.{id контакта} (только для типов dialog, ati_driver)
{код в ATI.SU партнера}.{id контакта} (только для типов dialog, ati_driver)
открытый/закрытый (только для типов channel, group)
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":"Описание моей группы"}'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/messenger/1.1/chats/", "{""channel_type"":""group"",""name"":""Моя группа"",""is_open"":true,""description"":""Описание моей группы""}");
200 Данные подписки
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
400 Ошибка валидации
Для создания диалогов и групповых чатов используется общий метод.
Диалог:
- При добавлении диалога создастся 2 подписки, но подписка собеседника будет скрыта пока в нее не напишут.
- Между двумя одинаковыми пользователями возможен только один диалог, при повторном создании будет возвращена та же самая подписка.
- Диалог можно создать двумя способами: используя ID аккаунта либо АТИ код, в зависимости от способа необходимо использовать поля id и ati_id соответственно. Не стоит указывать оба поля при запросе.
Группа, канал:
- По умолчанию при добавлении группы создастся чат с одним юзером в качестве участника (в ответ вернется его подписка).
- Можно создать чат и одновременно пригласить нескольких пользователей указав их списком в поле
members
.
Обновление мета-данных группового чата put /messenger/1.1/chats/{chat_id}/
имя групп.чата
описание
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":"Новое описание моей группы"}'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("PUT", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/", "{""name"":""Новое название группы"",""description"":""Новое описание моей группы""}");
200 Обновленные данные подписки
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("DELETE", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/");
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.1/subscriptions/");
200 Подписки пользователя
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
Метод возвращает постраничный список подписок.
Получение информации о подписке 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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.1/subscriptions/{chat_id}/");
200 Подписки пользователя
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/users/");
200 Список участников
id юзера (c contact_id)
alias юзера (без contact_id)
имя юзера
название компании
email юзера
факс юзера
icq юзера
номер мобильного телефона юзера
номер телефона юзера
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/users/{user_id}/");
200 Подписка добавленного пользователя
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("DELETE", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/users/{user_id}/");
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("PATCH", "https://api.ati.su", "/messenger/1.1/subscriptions/{chat_id}/");
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("DELETE", "https://api.ati.su", "/messenger/1.1/subscriptions/{chat_id}/");
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/history/");
200 список сообщения
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
Метод возвращает постраничный список сообщений.
Отправка сообщения 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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/messenger/1.2/chats/{chat_id}/messages");
200 json сообщения
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
Метод отправки сообщения. Поддерживаются текстовые сообщения, сообщения с картинкой или файлом, а также сообщения с геометкой. Одно сообщение должно содержать либо текст, либо одно вложение (картинку или файл), либо геометку.
Для отправки картинки обязательно прислать одновременно 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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.2/messages/{message_id}/image");
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.2/messages/{message_id}/file");
200 Файл, прикреплённый к сообщению
Получение файла, прикреплённого к сообщению. Работает только для сообщений, у которых file_id
не равен null
. Использовать file_id
не нужно: достаточно передать идентификатор сообщения message_id
.
Прочие методы
Изменение настроек подписки post /messenger/1.1/chats/{chat_id}/settings/
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}'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/settings/", "{""pin"":true,""hidden"":false}");
200 Возвращает объект подписки с обновленными настройками
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
400 Ошибка валидации
403 Скрыть канал можно только после принятия приглашения
404 Канал не найден
Изменение настроек подписки (скрыть/закрепить).
Приглашение нескольких пользователей в групповой чат post /messenger/1.1/chats/{chat_id}/users/
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"]}'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/users/", "{""members"":[""string""]}");
200 Подписки добавленных пользователя
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("DELETE", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/messages/{ts_or_id}/");
200 Возвращает объект подписки с обновленным tail и ts
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
Удалять сообщения можно в диалогах и только если они не прочитаны собеседником. В качестве идентификатора можно использовать как непосредственно 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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("DELETE", "https://api.ati.su", "/messenger/1.1/chats/{chat_id}/history/");
200 Возвращает объект подписки с обновленным tail и ts
id чата
тип чата
Название чата (имя собеседника)
время создания чата (iso)
время последнего изменения (iso)
создатель чата
id чата
доставлено/недоставлено
таймстемп (isoformat) сообщения
текст сообщения
таймстемп (unix) сообщения
id сообщения
id отправителя, отстутствует в системных событиях
тип системного события
Имя отправителя сообщения
ссылка на документ в атидоках
id загруженного в filestorage файла
описание чата (для диалогов - название фирмы)
alias участника (c contact_id)
id партнера (без contact_id)
id партнера (c contact_id)
alias партнера (c contact_id)
количество учасчтников группового чата (для диалогов - null)
timestamp последней очистки сообщений
количество непрочитанных сообщений
id юзера (c contact_id)
timestamp последнего изменения
короткий хэш для группового чата, используется в ссылке для приглашения, содерижтся только в подписке админа
Очистить переписку можно только в диалогах, причем история изменится лишь для владельца подписки, у собеседника все останется как есть. При вызове метода в подписку добавится поле 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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.1/inbox/");
200 Счетчик непрочитанных
Метод вернет количество чатов с непрочитанными сообщениями.
Получение количества непрочитанных чатов по типам (все/диалоги/групповые чаты) 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'
Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("GET", "https://api.ati.su", "/messenger/1.1/subscriptions/unread/");
200 Данные по количеству непрочитанных чатов по типу
Метод аналогичный inbox
, но счетчики будут разбиты по типам чатов.