imbot.v2.Chat.Message.send
Отправить сообщение
Описание
Метод imbot.v2.Chat.Message.send отправляет сообщение от имени бота в указанный диалог.
Параметры
botId
integer
обязательный
ID бота
botToken
string
необязательный
Уникальный токен авторизации бота. Обязателен при авторизации через вебхук, не нужен для OAuth.
Передавайте тот же botToken, который был указан при регистрации чат-бота
dialogId
string
обязательный
ID диалога. Для групповых чатов — chat{chatId}, для личных — {userId}
fields
object
необязательный
Содержимое сообщения. Структура объекта описана ниже
Параметр fields
message
string
необязательный
Текст сообщения. Максимальная длина — 20 000 символов. При превышении текст обрезается с добавлением (...)
attach
array
необязательный
Вложения. Подробнее: Как использовать вложения
keyboard
array
необязательный
Клавиатура с кнопками. Подробнее: Работа с клавиатурами
system
boolean
необязательный
Системное сообщение. Допустимые значения: true, false. По умолчанию false
urlPreview
boolean
необязательный
Показывать превью ссылок. Допустимые значения: true, false. По умолчанию true
replyId
integer
необязательный
ID сообщения, на которое отвечает бот
templateId
string
необязательный
UUID шаблона сообщения
forwardIds
object
необязательный
Сообщения для пересылки. Формат: {uuid: messageId}, где uuid — произвольная UUID-строка как ключ, messageId — ID исходного сообщения. В ответе uuidMap вернет {uuid: newMessageId}.
Бот может пересылать только сообщения из чатов, в которых он является участником. Максимум 100 сообщений
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"botToken":"my_bot_token","dialogId":"chat5","fields":{"message":"Hello from bot!","keyboard":[{"TEXT":"Open","LINK":"https://example.com","BG_COLOR_TOKEN":"primary"}]}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.Message.send
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"dialogId":"chat5","fields":{"message":"Hello from bot!"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.Message.send
try {
const response = await $b24.callMethod('imbot.v2.Chat.Message.send', {
botId: 456,
dialogId: 'chat5',
fields: {
message: 'Hello from bot!',
keyboard: [
{ TEXT: 'Open', LINK: 'https://example.com', BG_COLOR_TOKEN: 'primary' },
],
},
});
const { result } = response.getData();
console.log('result:', result);
} catch (error) {
console.error('Error:', error);
}
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.imbot.v2.chat.message.send(
bot_id=456,
dialog_id="chat5",
fields={
"message": "Hello from bot!",
"keyboard": [
{
"TEXT": "Open",
"LINK": "https://example.com",
"BG_COLOR_TOKEN": "primary",
},
],
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'imbot.v2.Chat.Message.send',
[
'botId' => 456,
'dialogId' => 'chat5',
'fields' => [
'message' => 'Hello from bot!',
'keyboard' => [
['TEXT' => 'Open', 'LINK' => 'https://example.com', 'BG_COLOR_TOKEN' => 'primary'],
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'result: ' . print_r($result, true);
} catch (Throwable $exception) {
error_log($exception->getMessage());
echo 'Error: ' . $exception->getMessage();
}
BX24.callMethod(
'imbot.v2.Chat.Message.send',
{
botId: 456,
dialogId: 'chat5',
fields: {
message: 'Hello from bot!',
keyboard: [
{ TEXT: 'Open', LINK: 'https://example.com', BG_COLOR_TOKEN: 'primary' },
],
},
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log('Message ID:', result.data().id);
}
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.v2.Chat.Message.send',
[
'botId' => 456,
'dialogId' => 'chat5',
'fields' => [
'message' => 'Hello from bot!',
],
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
echo 'Message ID: ' . $result['result']['id'];
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "imbot.v2.Chat.Message.send", b24.Params{
"botId": 456,
"botToken": "my_bot_token",
"dialogId": "chat5",
"fields": b24.Params{
"message": "Hello from bot!",
"keyboard": []b24.Params{
{
"TEXT": "Open",
"LINK": "https://example.com",
"BG_COLOR_TOKEN": "primary",
},
},
},
})
if err != nil {
return fmt.Errorf("imbot.v2.Chat.Message.send: %w", err)
}
var item struct {
ID b24.ID `json:"id"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID)
Ответ
HTTP-статус: 200
{
"result": {
"id": 789,
"uuidMap": {}
},
"time": {
"start": 1728626400.123,
"finish": 1728626400.234,
"duration": 0.111,
"processing": 0.045,
"date_start": "2024-10-11T10:00:00+03:00",
"date_finish": "2024-10-11T10:00:00+03:00"
}
}
Обработка ошибок
HTTP-статус: 400
{
"error": "EMPTY_MESSAGE",
"error_description": "Message is empty"
}
| Код | Описание | Значение |
|---|---|---|
BOT_TOKEN_NOT_SPECIFIED |
Bot token is not specified | Не указан botToken. Обязателен при авторизации через вебхук |
BOT_ID_REQUIRED |
Bot ID is required | Не указан botId |
BOT_NOT_FOUND |
Bot not found | Бот не найден |
BOT_OWNERSHIP_ERROR |
Bot is registered by another application | Бот зарегистрирован другим приложением |
ACCESS_DENIED |
Access denied | Бот не является участником чата |
EMPTY_MESSAGE |
Message is empty | Пустое сообщение — нет текста или вложений |
SENDING_FAILED |
Sending failed | Ошибка отправки сообщения |

