12  /  80

Форматирование

Просмотров: 4023 (Статистика ведётся с 06.02.2017)

Сообщение можно форматировать, добавлять полужирный шрифт, перечеркивать и вставлять цитаты. В уроке приводятся команды пользователя, внешний вид и REST API для форматирования сообщений чата.

Обратите внимание! Все методы указаны с использованием функции restCommand - это метод отправки данных в Битрикс24, данный метод есть в примере ЭхоБота, и представлен здесь в качестве примера. Вы можете использовать свою функцию или javascript-метод BX24.callMethod или bitrix24-php-sdk.


Коды форматирования

Если в чат отправить данное сообщение:

[B]полужирный[/B] текст
[U]подчеркнутый[/U] текст
[I]наклонный текст[/I] текст
[S]перечеркнутый[/S] текст

То оно отобразится таким образом:

Форматирование с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "[B]полужирный[/B] текст
[U]подчеркнутый[/U] текст
[I]наклонный текст[/I] текст
[S]перечеркнутый[/S] текст",
), $_REQUEST["auth"]);

Перенос строки

Перенос строки осуществляется добавлением в текст символов:

[BR]
# BR # (без пробелов)
\n

Любой из этих кодов, сформирует перенос строки:

Перенос строки с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "Первая строка[BR]Вторая строка",
), $_REQUEST["auth"]);

Цитирование

Цитирование текста можно сделать двумя способами:

>>первая строка цитаты
>>вторая строка цитаты

------------------------------------------------------
Дмитрий Власов [08.04.2016 13:06:49]
Привет всем
------------------------------------------------------

Вид цитирования будет немного отличаться - во втором случае будет указан автор и время написания цитаты:

Цитирование с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => ">>первая строка цитаты
>>вторая строка цитаты

------------------------------------------------------
Дмитрий Власов [08.04.2016 13:06:49]
Привет всем
------------------------------------------------------",
), $_REQUEST["auth"]);

Ссылки

Любая ссылка в тексте автоматически станет кликабельной. Если по адресу ссылки есть «богатое форматирование», то ссылка автоматически его подхватит:

Ссылки с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "http://bitrix24.ru",
), $_REQUEST["auth"]);

Примечание: «Богатое форматирование» можно отключить, передав ключ 'URL_PREVIEW' => 'N' при создании сообщения:
restCommand('imbot.message.add', Array(
"DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
"MESSAGE" => "http://bitrix24.ru",
'URL_PREVIEW' => 'N' 
), $_REQUEST["auth"]);


Если вы отправите ссылку на картинку http://shelenkov.com/bitrix/images/mantis.jpg (окончание ссылки должно быть .png, .jpg, .gif), то она автоматически преобразуется в изображение:


Вы можете сформировать ссылку самостоятельно через код URL - [URL=http://bitrix24.ru]Ссылка на Битрикс24[/URL]:

Формирование ссылки с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "[URL=http://bitrix24.ru]Ссылка на Битрикс24[/URL]",
), $_REQUEST["auth"]);

По аналогии с кодом URL, есть специальные коды на ссылки внутри мессенджера.

  • [USER=5]Марта[/USER] - ссылка на пользователя.
  • [CALL=84012334455]позвонить[/CALL] - кнопка для осуществления звонка через Битрикс24.
  • [CHAT=12]ссылка на чат[/CHAT] - ссылка на чат.

Форматирование специальных кодов с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "[USER=5]Марта[/USER]
[CALL=84012334455]позвонить[/CALL]
[CHAT=12]ссылка на чат[/CHAT]",
), $_REQUEST["auth"]);

Отступы

Чтобы сделать отступы в сообщении, укажите символ табуляции:

Отступы с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "
Отступ
   Отступ
      Отступ",
), $_REQUEST["auth"]);

Активные ссылки (команды)

Если вы хотите, чтобы по клику на ссылку пользователь отправил какой-то текст, используйте тег SEND:

[send=текст]название кнопки[/send] - мгновенная отправка текста боту.

С помощью такого тега, вы сможете заставить пользователя отправить команду вашего бота, но существует более предпочтительный способ - Набираемые клавиатуры

Активные ссылки (команды) с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "[send=текст]название кнопки[/send] - мгновенная отправка текста боту",
), $_REQUEST["auth"]);

Если необходимо, чтобы пользователь что-то дописал к команде, используйте код PUT:

[put=/search]Введите строку поиска[/put]

С помощью данного тега можно дать возможность пользователю указать дополнительные данные для вашей команды вместо того, чтобы пользователь набирал команду вручную. После клика на такую ссылку, текст указанный в теге PUT будет подставлен в поле для ввода и пользователю достаточно будет дописать необходимые данные и нажать кнопку отправить (но существует более предпочтительный способ - Набираемые клавиатуры):

Отправка команды бота с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "[put=/search]Введите строку поиска[/put]",
), $_REQUEST["auth"]);

Вложения

Вложения в сообщение позволяют разнообразить текст простого сообщения, добавлением в него ссылки, картинки и т.п.

Для этого в методе добавления сообщения, в ключе MESSAGE, указывается специальный bb-код [ATTACH=1], тогда при показе сообщения пользователю он будет заменен на вложение. Если такой bb-код не указывать, то вложение будет в самом конце сообщения.

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"]);

Иконки

Добавление своей иконки в сообщение производится отправкой кода:

[icon=http://shelenkov.com/images/unicorn.png size=30 title=Единорог]

Иконка отобразится таким образом:

Также после этого иконка будет добавлена в набор смайлов Бизнес-чата. Удалить иконку из набора можно, нажав правой кнопкой мыши на иконке в наборе и выбрав Удалить.

Обязательным свойством является указание пути до картинки (без пробелов).

Доступны дополнительные атрибуты:

  • title - заголовок;
  • height - высота;
  • width - ширина;
  • size - высота и ширина;

Для наилучшего отображения на всех устройствах, размер иконки должен быть в два раза больше, чем указан в параметрах отображения.

Добавление своей иконки с помощью rest-api:

restCommand('imbot.message.add', Array(
   "DIALOG_ID" => $_REQUEST['data']['PARAMS']['DIALOG_ID'],
   "MESSAGE" => "[icon=http://shelenkov.com/images/unicorn.png size=30 title=Единорог]",
), $_REQUEST["auth"]);

Примечание Подробнее как использовать вложения расширенного формата внутри сообщения читайте здесь.



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