Робота з 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 "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 |