Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Добавить сообщение im.message.add». Вы узнаете экспертные методики работы с im.message.add и научитесь избегать типичных ошибок начинающих разработчиков.
Добавить сообщение im.message.add
Тут может не хватать некоторых данных — дополним в ближайшее время
- нужны правки под стандарт написания
- не указаны типы параметров
- отсутствуют примеры
> Scope: im
>
> Кто может выполнять метод: любой пользователь
Метод im.message.add отправляет сообщение от текущего пользователя в чат.
| Параметр | Пример | Описание | Ревизия |
|---|---|---|---|
*DIALOG_ID^^string | chat13или 256 | Идентификатор диалога. Формат: — chatXXX – чат получателя, если сообщение для чатах — XXX – идентификатор получателя, если сообщение для приватного диалога | 18 |
MESSAGE^^text | Текст сообщения | Текст сообщения. Поддерживается форматирование | 18 |
SYSTEMboolean | N | Отображать сообщения в виде системного сообщения. По умолчанию ‘N’. Сообщение с признаком системного нельзя изменить или удалить | 18 |
ATTACHobject | Пример | Вложение | 18 |
URL_PREVIEWboolean | Y | Преобразовывать ссылки в rich-ссылки, необязательное поле, по умолчанию ‘Y’ | 18 |
KEYBOARDobject | Пример | Клавиатура | 18 |
MENUobject | Пример | Контекстное меню | 18 |
Практические примеры использования в коде
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{DIALOG_ID: "chat5",MESSAGE: "Сообщение [B]с вложением[/B] цвета primary и поддержкой [I]bb-кодов[/I]",ATTACH: [{MESSAGE: "API будет доступно в обновлении [B]im 24.0.0[/B]"}]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/im.message.add- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{DIALOG_ID: "chat5",MESSAGE: "Сообщение [B]с вложением[/B] цвета primary и поддержкой [I]bb-кодов[/I]",ATTACH: [{MESSAGE: "API будет доступно в обновлении [B]im 24.0.0[/B]"}]}' \
https://**put_your_bitrix24_address**/rest/im.message.add- JS
try
{
const response = await $b24.callMethod(
'im.message.add',
{
DIALOG_ID: "chat5",
MESSAGE: "Сообщение [B]с вложением[/B] цвета primary и поддержкой [I]bb-кодов[/I]",
ATTACH: [
{
MESSAGE: "API будет доступно в обновлении [B]im 24.0.0[/B]"
},
],
}
);
const result = response.getData().result;
console.log('response', result.answer);
if (result.error())
alert("Error: " + result.error());
else
console.log(result);
}
catch( error )
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'im.message.add',
[
'DIALOG_ID' => "chat5",
'MESSAGE' => "Сообщение [B]с вложением[/B] цвета primary и поддержкой [I]bb-кодов[/I]",
'ATTACH' => [
[
'MESSAGE' => "API будет доступно в обновлении [B]im 24.0.0[/B]"
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
echo 'response: ' . $result['answer'];
if ($result['error']) {
echo 'Error: ' . $result['error'];
} else {
echo 'Data: ' . print_r($result['data'], true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding message: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'im.message.add',
{
DIALOG_ID: "chat5",
MESSAGE: "Сообщение [B]с вложением[/B] цвета primary и поддержкой [I]bb-кодов[/I]",
ATTACH: [
{
MESSAGE: "API будет доступно в обновлении [B]im 24.0.0[/B]"
},
],
},
function(result) {
console.log('response', result.answer);
if(result.error())
alert("Error: " + result.error());
else
console.log(result.data());
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'im.message.add',
[
"DIALOG_ID" => "chat20921",
"MESSAGE" => "Сообщение [B]с вложением[/B] цвета primary и поддержкой [I]bb-кодов[/I]",
"ATTACH": => [
[
"MESSAGE" => "API будет доступно в обновлении [B]im 24.0.0[/B]"
],
],
]
);
echo '<pre>';
print_r($result);
echo '</pre>';Ответ в случае успеха
{
"result": 11
}Результат выполнения: идентификатор сообщения MESSAGE_ID или ошибка.
Ответ в случае ошибки
{
"error": "USER_ID_EMPTY",
"error_description": "Идентификатор получателя не задан в случае отправки сообщения в чат один-на-один"
}Описание ключей
error– код возникшей ошибкиerror_description– краткое описание возникшей ошибки
Возможные коды ошибок
| Код | Описание |
|---|---|
| USER_ID_EMPTY | Идентификатор получателя не задан в случае отправки сообщения в чат один-на-один |
| CHAT_ID_EMPTY | Идентификатор чата получателя не задан в случае отправки сообщения в чат |
| ACCESS_ERROR | Недостаточно прав для отправки сообщения |
| MESSAGE_EMPTY | Не передан текст сообщения |
| ATTACH_ERROR | Весь переданный объект вложения не прошел валидацию |
| ATTACH_OVERSIZE | Превышен максимально допустимый размер вложения (30 Кб) |
| KEYBOARD_ERROR | Весь переданный объект клавиатуры не прошел валидацию |
| KEYBOARD_OVERSIZE | Превышен максимально допустимый размер клавиатуры (30 Кб) |
| MENU_ERROR | Весь переданный объект меню не прошел валидацию |
| MENU_OVERSIZE | Превышен максимально допустимый размер меню (30 Кб) |
| PARAMS_ERROR* | Что-то пошло не так |
Ссылки по теме
- Как работать с набираемыми клавиатурами
- Как работать с вложениями
- Форматирование сообщений
- Работа с контекстным меню
💡 Экспертное мнение и рекомендации
Ключевые выводы по теме «Добавить сообщение im.message.add»:
Использование современных стандартов D7 при работе с im.message.add позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru