Список возможных вариантов типов сообщений в MyChat.

 

Во всех JSON-объектах UNICODE-символы и специальные символы (слеши, кавычки и т.п.) должны экранироваться.
 

0. MSG_TYPE_OLD_SHIT

 

Текстовая строка, старый тип сообщений, оставлен для совместимости.
 

1. MSG_TYPE_TEXT

 

Многострочный UNICODE текст, разбитый CRLF.
 

2. MSG_TYPE_IMAGE

 

Изображение. Текст, разбитый построчно CRLF. Символы "//" и текст после них — пояснение, в реальном сообщении их нет.

 

01baeef3a5b9c339aebf2511e9b5ab819df713be // SHA1 хеш файла

Screenshot (Alexey Pikurov) 2020-12-09 19-12-39.png // название файла

61959556.737768 // date and time stamp файла в UTC

94147 // размер файла в байтах

1087x600 // разрешение картинки в точках
 

3. MSG_TYPE_BEEP

 

Звуковой сигнал для привлечения внимания.
 

5. MSG_TYPE_MARKDOWN

 

Текст в разметке Markdown. Зарезервировано.
 

6. MSG_TYPE_ACTION

 

Ссылка на выполнение функции автоматизации MyChat. JSON объект.

 

{

 "ActionIdx" : 16 // номер action-а

 ...              // могут быть другие поля, в зависимости от типа action-а

}
 

7. MSG_TYPE_LAN_LINK

 

Ссылка на ресурс в локальной сети. JSON объект. Примеры:

 

c:\folder\

d:\folder\file.txt

Z:\

file:///E:/Doc/%D0%94%D0%BE%D0%BA/

\\COMP\Folder\

\\COMP\Folder\file.exe

 
Линки с кавычками:

 

"\\TOSHIBA-PC\test\mcclient77to8Test\7z.dll"

"\\TOSHIBA-PC\backup\txt"

 

{

   "Link"  : "\\TOSHIBA-PC\backup\txt", // текст ссылки

   "Desc"  : "Бла-бла-бла"              // описание ссылки. Необязательный параметр,

                                        // если его нет, вставлять в чат описание,

                                        // равное тексту ссылки

}
 

8. MSG_TYPE_ANY_LINK

 

Интернет-ссылка. JSON объект. Примеры:

 

http://

https://

ftp://

www.nsoft-s.com

ya.ru

domain.google

internal.yandex

домен.укр
 

{

   "Link"  : "https://nsoft-s.com", // текст ссылки

   "Desc"  : "Бла-бла-бла"          // описание ссылки. Необязательный параметр,

                                    // если его нет, вставлять в чат описание,

                                    // равное тексту ссылки

}

 

9. MSG_TYPE_PREVIEW_CUSTOM_LINK

 

Зарезервировано.
 

10. MSG_TYPE_INTEGRATION_API

 

Обычный UNICODE многострочный текст. Этот тип ставится, если в команде отправки сообщения Integration API (например, MCIAPI_CS_SendPrivateMessage или MCIAPI_CS_SendChannelMessage) не был указан тип сообщения.
 

11. MSG_TYPE_SOURCE_CODE

 

Исходный текст программы на каком-либо языке программирования. Зарезервировано.
 

12. MSG_TYPE_MEDIA_CALL

 

Медиа-звонок (аудио или видео). JSON объект.

 

{

   "UINFrom"           : 17,        // кто звонил

   "UINTo"             : 23,        // кому звонил

   "dtUTC"             : "12.11.2019.17.37.55", // дата и время звонка в UTC

   "Type"              : 0,         // тип звонка (voice, video, screen sharing)

   "Duration"          : 0,         // продолжительность звонка в секундах,

                                    // если 0 - звонок не состоялся

   "State"             : 0,         // статус звонка, константа, mediastate_....

   "Error"             : "",        // текст ошибки, если есть

   "UINFromClientType" : "win32",   // тип приложения, кто звонил, может быть пустым

   "UINToClientType"   : "android"  // тип приложения, кому звонили, может быть пустым

}
 

13. MSG_TYPE_IGNORE

 

Уведомление, что ваше сообщение было проигнорировано получателем. Зарезервировано.
 

14. MSG_TYPE_SERVICE

 

Зарезервировано.
 

17. MSG_TYPE_CONF_CHANGE_TOPIC

 

Зарезервировано.
 

18. MSG_TYPE_CONF_BAN

 

Наказание пользователя конференции за что-либо. JSON объект.

 

{

 "bantype"    : 1,                     // тип бана, 1 - запрет на отправку сообщений,

                                       // 2 - запрет на вход в конференцию

 "reason"     : "bla-bla-bla",         // причина бана

 "banneduin"  : 1,                     // UIN наказанного пользователя

 "dtutcuntil" : "09.12.2020.20.54.56"} // дата и время окончания наказания, в UTC
 

19. MSG_TYPE_CONF_TURN_OUT

 

Изгнание пользователя из конференции. JSON объект.

 

{

 "UIN"         : 17,          // идентификатор изгнанного пользователя

 "DisplayName" : "John Smith" // отображаемое имя пользователя, которого выгнали из конференции

}
 

20. MSG_TYPE_BROADCAST_NOTIFY

 

Входящее уведомление о прочитанном оповещении. JSON объект.

 

{

 "UIN"        : 17,           // идентификатор пользователя, что прочитал оповещение

 "ChangeID"   : 786,          // ChangeID этого пользователя

 "ID"         : 14750,        // идентификатор оповещения, целое число > 0

 "ReadCount"  : 3,            // сколько уже прочитано этих оповещений

 "TotalCount" : 10,           // сколько было отправлено таких оповещений

 "MsgBrief"   : "Bla-bla-bla" // текст оповещения, сокращённый до 100 символов

}
 

21. MSG_TYPE_COMMENT

 

Просто многострочный текст, комментарий, который не отображается в WEB-чате поддержки на сайте, но виден во всех приложениях MyChat.
 

22. MSG_TYPE_KANBAN_NOTIFY

 

Уведомление про событие на Kanban-доске. JSON объект.

 

{

 "Avatar": 1178101805,

 "UIN": 3,

 "Sex": 1,

 "OldStageName": "test stage",

 "TaskID": 641,

 "StageName": "in work",

 "DisplayName": "Andrey Rakov",

 "ProjectID": 12,

 "What": 4, // что произошло:

            // 1: KANBAN_NOTIFY_TASK_ADDED

            // 2: KANBAN_NOTIFY_TASK_PERFORMER_CHANGED

            // 3: KANBAN_NOTIFY_COMMENT_ADDED

            // 4: KANBAN_NOTIFY_TASK_MOVED

            // 5: KANBAN_NOTIFY_TASK_CHANGED

            // 6: KANBAN_NOTIFY_TASK_DELETED

            // 7: KANBAN_NOTIFY_PROJECT_CLOSED

            // 8: KANBAN_NOTIFY_TASK_TAKEN

 "TaskName": "Bla-bla-bla"

}
 

23. MSG_TYPE_FILE (deprecated)

 

Файл. Многострочный UNICODE текст, разбитый CRLF. Символы "//" и текст после них — пояснение, в реальном сообщении их нет.

 

34ad8f64d45ae5e9f8f98aa66b13e8110a9a36d9 // SHA1 хеш файла

C:\Users\hobit\OneDrive\Документы\документ.docx // название и полный путь к файлу на устройстве отправителя

36201701.737550 // date and time stamp файла в UTC

19149 // размер файла в байтах
 

24. MSG_TYPE_LOCATION

 

Географическая позиция, JSON объект.

 

{

 "Address"   : "м. Фастів, Київська обл., Україна, 08500", // адрес в текстовом представлении

 "Latitude"  : "51.53543533",                              // широта

 "Longitude" : "47.55158556"                               // долгота

}
 

25. MSG_TYPE_CONTACT

 

Контакт в формате vCard, JSON объект.

 

{

 "Name" : "Hobit",                     // название контакта

 "Data" : "xurhdctkues5hmthm5yi8csd5y" // vCard-строка

}
 

26. MSG_TYPE_AUDIO

 

Зарезервировано.
 

27. MSG_TYPE_VIDEO

 

Зарезервировано.
 

28. MSG_TYPE_ADM_DELETE_MESSAGE

 

Удаление любого сообщения по его индексу. Сообщение генерируется исключительно сервером. JSON объект.

 

{

 "Type" : 0,   // 0 - удалить для всех, 1 - удалить только у меня

 "Idx"  : 1745 // индекс сообщения, которое следует удалить

}
 

29. MSG_TYPE_FORUM_NOTIFY

 

Уведомление о событии на встроенном форуме. JSON объект.

 

{

 "Avatar": 1178101805,

 "UIN": 3,

 "Sex": 1,

 "DisplayName": "Andrey Rakov",

 "PostID": 458,

 "Topic": "MyChat internal documentation",

 "What": 1, // что произошло:

            // 1: FORUM_NOTIFY_POST_CREATED

            // 2: FORUM_NOTIFY_POST_CHANGED

 "Path": "s8\/t10"

}
 

30. MSG_TYPE_PRIVATE_REDIRECT

 

Разговор перенаправлен от одного пользователя другому. JSON объект.

 

{

 "UIN"             : 17, // пользователь, которого нужно "передать" другому собеседнику

 "UINTo"           : 3,  // пользователь, кому мы передаём разговор

 "UINFrom"         : 6,  // пользователь, кто передаёт разговор

 "DisplayName"     : "User1",

 "DisplayNameTo"   : "Andy",

 "DisplayNameFrom" : "Alex"

}
 

31. MSG_TYPE_FORWARD

 

Зарезервировано.
 

32. MSG_TYPE_CLIPBOARD_EXCEL

 

Содержимое буфера обмена в текстовом виде таблицы MS Excel. Текстовые строки, разделённые CRLF. Символы "//" и текст после них — пояснение, в реальном сообщении их нет.

 

819ce3ba3278be1e88086f177b82a3f65292f3e4 // SHA1 хеш файла скриншота

Table data (Alexey Pikurov) 2020-12-09 23-32-21.png // название файла скриншота

77541357.737768 // date and time stamp файла в UTC

7148 // размер файла картинки в байтах

929x115 // разрешение картинки в точках

Text // содержимое текста таблицы, по ячейкам, разделёнными tab-ми (#9) и строкам, разделёнными CRLF
 

33. MSG_TYPE_BARCODE

 

Штрих-код или QR-код. JSON объект.

 

{

 "Data"   : "https://nsoft-s.com/forum/",     // данные из штрихкода

 "Body"   : "kdjfnbgsk,sjdngfkjdnfgkjdnkgdg", // изображение, PNG 128х128

 "Format" : "AZTEC"                           // формат

}
 

34. MSG_TYPE_FTP_PUBLIC

 

Ссылка на общую папку на файловом FTP-сервере. Если Link пустой, то перейти на корневую папку. Можно сослаться на папку или на конкретный файл, который лежит на публичном FTP сервере. JSON объект.

 

{

 "Link" : "" // текст ссылки

}
 

35. MSG_TYPE_FTP_PERSONAL

 

Ссылка на персональный FTP. Если Link пустой, то перейти на корневую папку. Можно сослаться на папку или на конкретный файл, который лежит на FTP сервере. JSON объект.

 

{

 "Link" : "", // текст ссылки

 "UIN"  : 17  // идентификатор владельца личного FTP-аккаунта

}
 

36. MSG_TYPE_TEXT_CONF_LINK

 

Ссылка на текстовую конференцию, JSON объект.

 

{

 "name"     : "my conference", // название конференции

 "conftype" : 1                // тип конференции, 1 - обычная, 2 - закрытая паролем, 3 - скрытая

}
 

37. MSG_TYPE_CLEAR_TEXT_WINDOW

 

Полностью очистить окно чата, работает только в чатах, в просмотре истории показывается, как техническое сообщение, и окно не очищается. JSON объект.

 

{

 "Total" : false // false - очищать чат только у отправителя,

                 // true - у обоих участников приватного диалога

                 // или у всех участников текстовой конференции

}
 

38. MSG_TYPE_CONF_JUST_CREATED

 

Информация о созданной конференции и приглашённых в неё пользователях, JSON объект.

 

{

 "Name" : "Конференция", // название конфы на момент создания

 "Topic" : "Бла-бла-бла", // тема конференции

 

 "ConfType" : 1, // тип конференции: 1 - обычная, 2 - закрытая паролем,

                 // 3 - скрытая, вход только по инвайтам

 

 "JoinUsers":"17,1,3" // приглашённые юзеры. Параметра может не быть

                      // или он может быть пустым. Это значит,

                      // что не приглашали никого

}
 

39. MSG_TYPE_BROADCAST

 

Входящее оповещение, JSON объект.

 

{

 "Msg": "Test message with some files", // текст оповещения

 "Files": [ // массив файлов, которые приложили к оповещению, может быть пустым

   {

     "UTCWriteTime": "81201711.737768",

     "OriginalFileName": "free_serv_versions.sql",

     "Size": 6219,

     "Hash": "5c8c5f2629aa17504fbcef3783f8edbfc411e41f"

   },

   {

     "UTCWriteTime": "81206099.737768",

     "OriginalFileName": "web_clients.sql",

     "Size": 1714,

     "Hash": "673223386a1c811aaee2c497de2746cde09f654b"

   }

 ]

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

45. MSG_TYPE_FILE_NEW

 

Файл, JSON объект. Символы "//" и текст после них — пояснение, в реальном сообщении их нет.

 

{

 "Hash":"4a9ce85f4eaa971526c599d60e4a1f7a477c233e", // sha-1 хеш файла

 "FileName":"Screenshot (Alexey Pikurov) 2021-03-09 16-52-51.png", // название файла с локальным путём отправителя

 "UTCWriteTime":"53571815.737858", // UTC timestamp файла, формат:

                                   // Number of milliseconds since midnight.One plus number of days since 1/1/0001

 "Size":112224, // размер файла в байтах

 "Desc":"Bla-Bla-Bla" // описание файла, необязательный параметр

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

40. MSG_TYPE_CONF_INVITED

 

Одного или нескольких пользователей пригласили в конференцию, JSON объект.

 

{

 "UINS" : "1,7,3" // идентификаторы приглашённых юзеров

}
 

48. MSG_TYPE_MYCHAT_GUEST_SENT

 

Пользователя успешно пригласили в чат через сервис MyChat Guest, JSON объект.

 

{

 "Email"    : "test@test.com",       // email пользователя

 "UserName" : "User1",               // имя пользователя

 "Link"     : "https://......",      // ссылка для входа в чат "в один клик"

 "dtUTC"    : "2021.08.17.15.44.27", // дата и время в UTC, срок действия приглашения в формате год.месяц.день.часы.минуты.секунды

 "Type"     : 1,                     // тип приглашения, 0 — одноразовое, 1 — многоразовое

 "UID"      : 17,                    // идентификатор конференции, если пользователя приглашают не в приват. Иначе = -1

 "ConfName" : "TestConf"             // название конференции, куда пригласили пользователя. Может быть пустым, если UID = -1

}

 

49. MSG_TYPE_CONF_PERSONAL_MESSAGE

 

Текстовое сообщение, предназначенное для списка пользователей либо для конкретного человека в конференции, JSON объект.

 

{

 "Text"    : "Bla-bla-bla", // текст сообщения

 "Users"   : "17,2,194",    // получатели сообщения, кто должен показать это сообщение. Остальные его просто пропускают

 "ShowTop" : false,         // показать окно приложения поверх всех окон

 "Switch"  : true           // принудительно переключиться на конференцию

}