Работа с MyChat Integration API через сокеты, напрямую
Если по какой-то причине вы не можете работать с DLL библиотекой или в списке интеграций нет того, что вам нужно, можно работать с сервером MyChat напрямую, через сетевые сокеты. Это позволяет большинство языков и систем программирования.
Данные по сети отправляются в однобайтовой ASCII кодировке. Каждая строка заканчивается символом CRLF (#13#10), 2 байта, внутренних разделителей в самой строке нет, все данные "склеиваются" одно за другим.
Схема работы любой команды MyChat Integration API состоит из четырёх этапов:
- Подключение к серверу.
- Отправка команды в JSON формате.
- Получение результата работы в JSON формате.
- Отключение от сервера.
Например, JSON объект для отправки приватного сообщения (MCIAPI_CS_SendPrivateMessage):
SendPrivateMessage JSON
{
"UserTo" : 15427,
"UserFrom" : 0,
"Msg" : "Hello",
"hash" : "",
"APIStype" : "customapi",
"ServerKey" : "iddqd"
}
Как отправить команду и получить ответ о том, что случилось?
Работаем в синхронном режиме (blocked mode), команды отправки и чтения идут строго по порядку.
На псевдокоде это будет выглядеть так:
try
1. Connect to IP/port
2. writeln "mc2023.4.0"
3. writeln "{"Secured":""}"
4. readln (sc_hello)
5. writeln MagicPacket + cs_integration_api + iFlag + MCIAPI_CS_SendPrivateMessage + JSON
6. readln (JSON, server reply)
except
Warning!!! Network Error (SOCKET) number and description
end;
Константы, которые вы будете использовать
Константа |
Значение |
Размер в байтах |
CRLF |
#13#10 |
2 (текстовая строка) |
MCIAPI_CS_SendPrivateMessage |
"0002" |
4 (текстовая строка) |
MagicPacket |
#23#6 |
2 |
cs_integration_api |
"0077" |
4 (текстовая строка) |
iFlag |
30 |
2 |
Ещё посмотреть
1C 8.xx / 1С через REST