Якщо з якоїсь причини ви не можете працювати з бібліотекою 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

 

Дивитися ще

C#

Delphi XE3

Java

Python

REST