Просмотров: 24519
Дата последнего изменения: 17.07.2024
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
5
Вы собираете объект Вложение и передаете его в метод отправки сообщения в ключ ATTACH (это может быть полная или сокращенная форма вложения).
Полная версия объекта ATTACH
JavaScript:
ATTACH: {
ID: 1,
COLOR_TOKEN: "secondary",
COLOR: "#29619b",
BLOCKS: [
{...},
{...},
]
}
PHP:
"ATTACH" => Array(
"ID" => 1,
"COLOR_TOKEN" => "secondary",
"COLOR" => "#29619b",
"BLOCKS" => Array(
array(...),
array(...),
)
)
Ключи массива:
ID
— идентификатор блока
COLOR_TOKEN
— отвечает за цветовое выделение вложения. Может принимать одно из следующих значений:
- primary
- secondary
- alert
- base
По умолчанию имеет значение base
COLOR
— отвечает за цветовое выделение вложения в чате. Используется для обратной совместимости в чатах открытых линий и уведомлениях. По умолчанию цвет вложения назначается в цвет чата получателя (или, если это уведомление, в цвет текущего пользователя). Данный ключ можно не задавать, если не требуется
BLOCKS
должен содержать блоки разметки, которые мы рассмотрим чуть ниже
Пример:
JavaScript:
BX24.callMethod(
'imbot.message.add',
{
DIALOG_ID: 'chat20921',
MESSAGE: 'Вложение с цветом primary',
ATTACH: {
ID: 1,
COLOR_TOKEN: "primary"
COLOR: "#29619b",
BLOCKS: [
{
MESSAGE: "API будет доступно в обновлении [B]im 24.0.0[/B]"
}
]
}
}
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" => "Вложение с цветом primary",
"ATTACH" => Array(
"ID" => 1,
"COLOR_TOKEN" => "primary"
"COLOR" => "#29619b",
"BLOCKS" => Array(
Array(
"MESSAGE" => "API будет доступно в обновлении [B]im 24.0.0[/B]"
)
)
)
),
$_REQUEST["auth"]
);
Краткая версия объекта ATTACH
Eсли устраивает, что вложение находится внизу сообщения и указывать цвет не требуется, можно использовать краткую версию:
JavaScript:
ATTACH: [
{...},
{...},
]
PHP:
"ATTACH" => Array(
array(...),
array(...),
)
В отличие от полного варианта, на первом уровне сразу указываются блоки разметки, без объявления ключа BLOCKS
Пример:
JavaScript:
BX24.callMethod(
'imbot.message.add',
{
DIALOG_ID: 'chat20921',
MESSAGE: 'Блок текста',
ATTACH: [
MESSAGE: "API будет доступно в обновлении [B]im 24.0.0[/B]"
]
},
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" => "Блок текста",
"ATTACH" => Array(
"MESSAGE" => "API будет доступно в обновлении [B]im 24.0.0[/B]"
)
),
$_REQUEST["auth"]
);
Примечание: функция
restCommand — это метод отправки данных в
Битрикс24, данный метод есть в примере
ЭхоБота, и представлен здесь в качестве примера. Вы можете использовать свою функцию или javascript-метод
BX24.callMethod или
bitrix24-php-sdk.
Обратите внимание: из-за сложности структуры, вложения автоматически не добавляются при отправке в XMPP, почту или в виде PUSH-уведомления на телефон.