14  /  166

Как использовать вложения

Просмотров: 19601
Дата последнего изменения: 17.07.2024
Александр Суворов
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
1
2
3
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-уведомления на телефон.



3
Курсы разработаны в компании «1С-Битрикс»