Просмотров: 13740
Дата последнего изменения: 09.04.2021
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
5
Вы собираете объект Вложение и передаете его в метод отправки сообщения в ключ ATTACH (это может быть полная или сокращенная форма вложения).
Полная версия объекта ATTACH
JavaScript:
ATTACH: {
ID: 1,
COLOR: "#29619b",
BLOCKS: [
{...},
{...},
]
}
PHP:
"ATTACH" => Array(
"ID" => 1,
"COLOR" => "#29619b",
"BLOCKS" => Array(
array(...),
array(...),
)
)
Ключи массива:
ID
- идентификатор блока.
COLOR
- отвечает за цветовое выделение вложения. По умолчанию цвет вложения назначается в цвет чата получателя (или если это уведомление в цвет текущего пользователя), Данный ключ можно не задавать, если не требуется.
BLOCKS
должен содержать блоки разметки, которые мы рассмотрим чуть ниже.

Пример:
JavaScript:
BX24.callMethod('imbot.message.add', {
DIALOG_ID: 'chat20921',
MESSAGE: 'Message from bot',
ATTACH: {
ID: 1,
COLOR: "#29619b",
BLOCKS: [
{LINK: {
NAME: "Тикет #12345: новое API для модуля \"Веб-мессенджер\"",
DESC: "Необходимо реализовать к релизу!",
LINK: "https://api.bitrix24.com/"
}},
{IMAGE: {
NAME: "Пример реализации",
LINK: "http://dev.1c-bitrix.ru/bitrix/templates/1c-bitrix-new/images/logo.png",
}}
]
}
}, function(result){
if(result.error())
{
console.error(result.error().ex);
}
else
{
console.log(result.data());
}
});
PHP:
restCommand('imbot.message.add', Array(
"DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
"MESSAGE" => "Message with attach",
"ATTACH" => Array(
"ID" => 1,
"COLOR" => "#29619b",
"BLOCKS" => Array(
Array("LINK" => Array(
"NAME" => "Тикет #12345: новое API для модуля \"Веб-мессенджер\"",
"DESC" => "Необходимо реализовать к релизу!",
"LINK" => "https://api.bitrix24.com/"
)),
Array("IMAGE" => Array(
"NAME" => "Пример реализации",
"LINK" => "http://dev.1c-bitrix.ru/bitrix/templates/1c-bitrix-new/images/logo.png",
))
)
)
), $_REQUEST["auth"]);
Краткая версия объекта ATTACH
Eсли устраивает, что вложение находится внизу сообщения и указывать цвет не требуется, можно использовать краткую версию:
JavaScript:
ATTACH: [
{...},
{...},
]
PHP:
"ATTACH" => Array(
array(...),
array(...),
)
В отличие от полного варианта, на первом уровне сразу указываются блоки разметки, без объявления ключа BLOCKS

Пример:
JavaScript:
BX24.callMethod('imbot.message.add', {
DIALOG_ID: 'chat20921',
MESSAGE: 'Message from bot',
ATTACH: [
{LINK: {
NAME: "Тикет #12345: новое API для модуля \"Веб-мессенджер\"",
DESC: "Необходимо реализовать к релизу!",
LINK: "https://api.bitrix24.com/"
}},
{IMAGE: {
NAME: "Пример реализации",
LINK: "http://dev.1c-bitrix.ru/bitrix/templates/1c-bitrix-new/images/logo.png",
}}
]
}, function(result){
if(result.error())
{
console.error(result.error().ex);
}
else
{
console.log(result.data());
}
});
PHP:
restCommand('imbot.message.add', Array(
"DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
"MESSAGE" => "Message from bot",
"ATTACH" => Array(
Array("LINK" => Array(
"NAME" => "Тикет #12345: новое API для модуля \"Веб-мессенджер\"",
"DESC" => "Необходимо реализовать к релизу!",
"LINK" => "https://api.bitrix24.com/"
)),
Array("IMAGE" => Array(
"NAME" => "Пример реализации",
"LINK" => "http://dev.1c-bitrix.ru/bitrix/templates/1c-bitrix-new/images/logo.png",
))
)
), $_REQUEST["auth"]);
Примечание: функция
restCommand - это метод отправки данных в
Битрикс24, данный метод есть в примере
ЭхоБота, и представлен здесь в качестве примера. Вы можете использовать свою функцию или javascript-метод
BX24.callMethod или
bitrix24-php-sdk.
Обратите внимание: из-за сложности структуры, вложения автоматически не добавляются при отправке в XMPP, почту или в виде PUSH-уведомления на телефон.