Просмотров: 4921
Дата последнего изменения: 26.08.2020
Сложность урока:
4 уровень - сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.
5
Вы собираете объект Вложение и передаете его в метод отправки сообщения в ключ ATTACH (это может быть полная или сокращенная форма вложения).
Полная версия объекта ATTACH
JavaScript:
ATTACH: {
ID: 1,
COLOR: "#29619b",
BLOCKS: [
{...},
{...},
]
}
PHP:
"ATTACH" => Array(
"ID" => 1,
"COLOR" => "#29619b",
"BLOCKS" => Array(
array(...),
array(...),
)
)
Ключи массива:
ID
- идентификатор блока, который нужен для того, чтобы вложение можно было разместить в любом месте сообщения, а не только в конце.
Для этого в методе добавления сообщения, в ключе MESSAGE, укажите bb-код [ATTACH=1]
, тогда при показе сообщения пользователю он будет заменен на вложение. Обратите внимание, указывать bb-код не обязательно, в этом случае вложение будет в конце сообщения.
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 middle attach [ATTACH=1] from bot",
"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-уведомления на телефон.