HalChat (Web)
Все запросы на api halchat делаются через HTTP запросы. Доступно абсолютно для всех устройств имеющие доступ в интернет и умеющие отправлять HTTP запросы.
В этой главе будут все API запросы доступные для пользователей с обычными правами. Ответ всегда в JSON формате.
Что обязательно указывается во всех API запросах
В POST запросах должен быть указан "code" - это API ключ для прямого доступа к запросам от аккаунта, ни в коем случае его никому не передавать!!! Приватный ключ можно получить в настройках - https://halwarsing.net/settings
Если нет "code" можно использовать сессионный ключ "uid" в cookie, он при каждой новой сессии новой, но их не может быть больше 10 одновременно для аккаунта.
"req" - это наименование запроса, какую api функцию вы хотите выполнить.
Какие параметры всегда в ответе от API
errorCode: int [0;4] - код типа ошибки
error: string - пояснение или наименование ошибки
Пример запроса
POST /api
Body code: string(100) /^[a-zA-Z0-9]+$/ req: string /^[a-zA-Z0-9]+$/ = "getMessages" limit: int = 100 chatId: int = 1 Response { "errorCode": 0, "error": "Успешно", "messages": [ { "uid": 1, "fromChat": 1, "fromId": 47, "fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O", "fromNickname": "halwarsing", "message": "99c7a1", "attachments": [], "time": 1738091283, "receive_message_sound": "JpSUQjNQDThj7yfahevVlBBIlgPDUAoy9vTgUs1oBKvhuSSOtt3fuk7ikXKVH2Ppd4D3ocBIlpfLAs0k4srW4cvxtJeJDOgFY6ny", "soundMsg": "-1", "answerMsg": "-1", "type": "0", "commentMsg": "-1", "encryptId": "1738091283242211", "recordMic": "-1", "isReaded": false, "dataBot": "" } ]}
Типы ошибок
0. Успешно, либо без ошибок. 1. Не указан тип запроса. 2. Не указан параметр. 3. Неправильного типа параметр. То есть отправили неправильного вида или формата данные, либо данные не подходят по другим причинам. 4. Другая причина которая прописана в "error".
HalChatMessageType
0 - обычное 1 - пост
HalChatMessage
uid: int - целочисленный идентификатор сообщения fromChat: int - целочисленный идентификатор чата fromId: int - целочисленный идентификатор отправителя fromIcon: str - id HalDrive файла аватара отправителя fromNickname: str - никнейм отправителя message: str - зашифрованное сообщение attachments: list - список id HalDrive файлов прикреплённых к сообщению time: int - unix время в секундах когда было отправлено сообщение receive_message_sound: str - id HalDrive файла звука прихода сообщения sound_msg: str - id HalDrive файла или "-1" звука прихода сообщения type: HalChatMessageType - тип сообщения commentMsg: int - целочисленный идентификатор сообщения поста, если это комментарий encryptId: str - id для уникального шифрования каждого сообщения - hex строка (размером только 16 символов) recordMic: str - голосовое сообщение - id файла HalDrive isReaded: bool - прочитано ли сообщение кем либо кроме отправителя answerMsg: int - целочисленный идентификатор сообщения если сообщение прикреплено к этому сообщению dataBot: str - данные от бота Если есть answerMsg answerMsgText: str - зашифрованное сообщение answerMsgTextEncoded: bool - если оно удалено или пустое, только файлы или recordMic, то answerMsgText будет обычным текстом answerMsgNickname: str - никнейм отправителя сообщения Если это пост countComments: int - кол-во комментариев на данном посту
getMessages
Получение списка сообщений
Параметры Обязательные limit: int - максимальное кол-во получение сообщений за один запрос [1;1000] chatId: int - целочисленный идентификатор чата, указан в настройках чата Дополнительные postId: int - id сообщения в виде поста, чтобы получить сообщения-комментарии данного поста start: int - id сообщения выше которого начинается список чтобы получать не последние сообщения, а с нужного диапазона. Ответ messages: list - массив сообщений (тип HalChatMessage) Результат { "errorCode": 0, "error": "Успешно", "messages": [ { "uid": 1, "fromChat": 1, "fromId": 47, "fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O", "fromNickname": "halwarsing", "message": "99c7a1", "attachments": [], "time": 1738091283, "receive_message_sound": "JpSUQjNQDThj7yfahevVlBBIlgPDUAoy9vTgUs1oBKvhuSSOtt3fuk7ikXKVH2Ppd4D3ocBIlpfLAs0k4srW4cvxtJeJDOgFY6ny", "soundMsg": "-1", "answerMsg": "-1", "type": "0", "commentMsg": "-1", "encryptId": "1738091283242211", "recordMic": "-1", "isReaded": false, "dataBot": "" } ]}
getNewMessages
Получение списка новых сообщений и действий в чате
Параметры Обязательные limit: int - максимальное кол-во получение сообщений за один запрос [1;1000] chatId: int - целочисленный идентификатор чата firstId: int - целочисленный идентификатор сообщения (если нет id, то указываем -1) - необходим для отслеживания новых сообщений, то есть новые сообщения относительно firstId - для вас последнее сообщение. lastAction: int - целочисленный идентификатор действия (если нет, то указываем -1) - необходим для отслеживания новых действий, то есть новые действия относительно lastAction - для вас последнее действие. Ответ messages: list - массив сообщений (тип HalChatMessage) actions: list - массив действий (тип HalChatAction) icon: str - аватар чата Результат { "errorCode": 0, "error": "Успешно", "messages": [ { "uid": 3345, "fromChat": 215, "fromId": 47, "fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O", "fromNickname": "halwarsing", "message": "7b9b", "attachments": [], "time": 1739225770, "receive_message_sound": "JpSUQjNQDThj7yfahevVlBBIlgPDUAoy9vTgUs1oBKvhuSSOtt3fuk7ikXKVH2Ppd4D3ocBIlpfLAs0k4srW4cvxtJeJDOgFY6ny", "soundMsg": "-1", "answerMsg": "-1", "type": "0", "commentMsg": "-1", "encryptId": "1739225771753215", "recordMic": "-1", "isReaded": false, "dataBot": "" } ], "actions": [], "icon": "7DxquHnideh6SWErqMy5HKnML424g90e7RHnqsDLI5IeunbAohe6tpdrZvsO0YL5mOCZffpPyxPXNGDzNjseZGA66tUtvlXLKHVm" }
getAllNewMessages
Получение списка всех новых сообщений с выбранных чатов.
Параметры Обязательные chats: list - массив чатов с firstId (Пример: {'1': '222'}). Ограничен по размеру до 220000 символов. Ответ messages: list - массив сообщений (тип HalChatMessage) Результат { "errorCode": 0, "error": "Успешно", "messages": [ { "uid": 3345, "fromChat": 215, "fromId": 47, "fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O", "fromNickname": "halwarsing", "message": "7b9b", "attachments": [], "time": 1739225770, "receive_message_sound": "JpSUQjNQDThj7yfahevVlBBIlgPDUAoy9vTgUs1oBKvhuSSOtt3fuk7ikXKVH2Ppd4D3ocBIlpfLAs0k4srW4cvxtJeJDOgFY6ny", "soundMsg": "-1", "answerMsg": "-1", "type": "0", "commentMsg": "-1", "encryptId": "1739225771753215", "recordMic": "-1", "isReaded": false, "dataBot": "" } ]}
getListChats
Получение списка чатов пользователя.
Параметров нет Ответ chats: list - список чатов. Результат { "errorCode": 0, "error": "Успешно", "chats": [ {"'uid": 1, 'id': "id1", "icon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O", "name": "Name Chat", "fromMe": true, "publicType": 0, "isAllowMessages": true, "chatType": 0, "isAllowComments": false, "created": 1739225770, "lastMessage"=> { "uid": 3345, "fromChat": 1, "fromId": 47, "fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O", "fromNickname": "halwarsing", "message": "7b9b", "attachments": [], "time": 1739225770, "receive_message_sound": "JpSUQjNQDThj7yfahevVlBBIlgPDUAoy9vTgUs1oBKvhuSSOtt3fuk7ikXKVH2Ppd4D3ocBIlpfLAs0k4srW4cvxtJeJDOgFY6ny", "soundMsg": "-1", "answerMsg": "-1", "type": "0", "commentMsg": "-1", "encryptId": "1739225771753215", "recordMic": "-1", "isReaded": false, "dataBot": "" }, "maxLastMessage": 3345, "maxAction": -1}]}
sendMessage
Отправка сообщения
Параметры
Обязательные
chatId: int - целочисленный идентификатор чата
message: text - текст сообщения в зашифрованном виде
attachments: list - список id файлов HalDrive прикреплённых к сообщению
Дополнительные
answerMsg: int - целочисленный идентификатор сообщения, на кого ссылается данное сообщение
commentMsg: int - целочисленный идентификатор поста, куда отправляется данное сообщение-комментарий
recordMic: str - голосовое сообщение - id файла HalDrive
soundMsg: str - звук прихода сообщения для данного сообщения - id файла HalDrive
encryptId: str - id для уникального шифрования каждого сообщения - hex строка (размером только 16 символов)
Для ботов
buttons: list - список кнопок в сообщении от бота. Пример:
[
{"text": "кнопка0", "color": "#ff0000"},
{"text": "кнопка1", "color": "#00ff00"}
]
plugins: dict - данные для плагинов HalChat от бота, нужно указать id плагина и данные. Пример:
{
"HalStatisticsPlugin": {
"type": "ChartLine",
"name":"Датчик температуры",
"names":["33:33:33"],
"data":[222],
"color": "#ff0000",
"widthLine":3
}
}
Ответ
type: int - тип сообщения HalChatMessageType
uid: int - целочисленный идентификатор сообщения
countComments: int - кол-во комментариев
fromId: int - id пользователя от кого отправлено сообщение
fromIcon: str - id аватара профиля отправителя
fromNickname: str - никнейм отправителя
time: int - время отправления сообщения
При answerMsg
answerMsgText: str - текст прикреплённого сообщения в зашифрованном виде
Результат
{
"errorCode": 0,
"error": "Успешно",
"type": 0,
"countComments": 0,
"uid": 4402,
"fromId": "47",
"fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O",
"fromNickname": "halwarsing",
"time": 1743711798
}
deleteMessage
Удаление сообщения в чате.
Параметры
Обязательные
chatId: int - целочисленный идентификатор чата
msgId: int - целочисленный идентификатор сообщения
Ответ
msg: int - целочисленный идентификатор сообщения
Результат
{
"errorCode": 0,
"error": "Успешно",
"msg": 1
}
editMessage
Изменение сообщения
Параметры
Обязательные
chatId: int - целочисленный идентификатор чата
msgId: int - целочисленный идентификатор сообщения
message: text - текст сообщения в зашифрованном виде
attachments: list - список id файлов HalDrive прикреплённых к сообщению
Дополнительные
encryptId: str - id для уникального шифрования каждого сообщения - hex строка (размером только 16 символов)
Ответ
uid: int - целочисленный идентификатор сообщения
message: HalChatMessage - сообщение
Результат
{
"errorCode": 0,
"error": "Успешно",
"uid": 3345,
"message": [
{
"uid": 3345,
"fromChat": 215,
"fromId": 47,
"fromIcon": "vIGhoFOfoRuwfBWtd8aF3qedcTcrWcUnVZu8iQ4j3U7Iy8yhZ7nWqplHqbZanAPWHXK5eNqDQGZYbiHAzKMOYgd4F450hfYCad8O",
"fromNickname": "halwarsing",
"message": "7b9b",
"attachments": [],
"time": 1739225770,
"receive_message_sound": "JpSUQjNQDThj7yfahevVlBBIlgPDUAoy9vTgUs1oBKvhuSSOtt3fuk7ikXKVH2Ppd4D3ocBIlpfLAs0k4srW4cvxtJeJDOgFY6ny",
"soundMsg": "-1",
"answerMsg": "-1",
"type": "0",
"commentMsg": "-1",
"encryptId": "1739225771753215",
"recordMic": "-1",
"isReaded": false,
"dataBot": ""
}
],
"actions": [],
"icon": "7DxquHnideh6SWErqMy5HKnML424g90e7RHnqsDLI5IeunbAohe6tpdrZvsO0YL5mOCZffpPyxPXNGDzNjseZGA66tUtvlXLKHVm"
}
Last updated