Работа напрямую, через сокеты

Работа с MyChat Integration API через сокеты, напрямую

Если по какой-то причине вы не можете работать с DLL библиотекой или в списке интеграций нет того, что вам нужно, можно работать с сервером MyChat напрямую, через сетевые сокеты. Это позволяет большинство языков и систем программирования.

 

Данные по сети отправляются в однобайтовой ASCII кодировке. Каждая строка заканчивается символом CRLF (#13#10), 2 байта, внутренних разделителей в самой строке нет, все данные "склеиваются" одно за другим.

 

Схема работы любой команды MyChat Integration API состоит из четырёх этапов:

 

1.Подключение к серверу.

2.Отправка команды в JSON формате.

3.Получение результата работы в JSON формате.

4.Отключение от сервера.

 

Например, 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 "mc5.18"
  3. readln (sc_hello)
  4. writeln MagicPacket + cs_integration_api + iFlag + MCIAPI_CS_SendPrivateMessage + JSON
  5. 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

C#

Delphi XE3

Java

Python

REST