Документация для разработчиков
Темная тема

Встраивание приложений

Разработчику приложений для Маркетплейса Битрикс24 доступен простой механизм встраивания приложения в интерфейс Битрикс24. В разделе приведены справочные данные по методам и местам встраивания. Детальное описание примеров работы представлено в курсе Приложения Битрикс24.

Встраиваемые приложения, к которым пользователь доступа не имеет, не будут отображаться в списках, пунктах меню или в других местах, где могут быть видны приложения. Исключение - встройка через тип пользовательского поля. Но в фрейм не будет передаваться авторизация, и разработчик приложения должен это учитывать.

Доступны следующие места для встраивания:

scope CRM
Код Лиды
CRM_LEAD_LIST_MENU Контекстное меню лидов
CRM_LEAD_DETAIL_TAB Пункт в верхнем меню в карточке лида
CRM_LEAD_DETAIL_ACTIVITY Пункт в меню таймлайна лида
CRM_LEAD_DETAIL_TOOLBAR Пункт в списке приложений карточки лида
Код Сделки
CRM_DEAL_LIST_MENU Контекстное меню сделок
CRM_DEAL_DETAIL_TAB Пункт в верхнем меню в карточке сделки
CRM_DEAL_DETAIL_ACTIVITY Пункт в меню таймлайна сделки
CRM_DEAL_DETAIL_TOOLBAR Пункт в списке приложений карточки сделки.
Код Контакты
CRM_CONTACT_LIST_MENU Контекстное меню контактов
CRM_CONTACT_DETAIL_TAB Пункт в верхнем меню в карточке контакта
CRM_CONTACT_DETAIL_ACTIVITY Пункт в меню таймлайна контакта
CRM_CONTACT_DETAIL_TOOLBAR Пункт в списке приложений карточки контакта.
Код Компании
CRM_COMPANY_LIST_MENU Контекстное меню компаний
CRM_COMPANY_DETAIL_TAB Пункт в верхнем меню в карточке компании
CRM_COMPANY_DETAIL_ACTIVITY Пункт в меню таймлайна компании
CRM_COMPANY_DETAIL_TOOLBAR Пункт в списке приложений карточки компании.
Код Счета
CRM_INVOICE_LIST_MENU Контекстное меню счетов
Код Предложения
CRM_QUOTE_LIST_MENU Контекстное меню предложений
Код Дела
CRM_ACTIVITY_LIST_MENU Контекстное меню дел
Код CRM-аналитика
CRM_ANALYTICS_MENU Меню CRM-аналитики
Код Смарт-процессы
Коды аналогичны кодам для любых сущностей CRM. Необходимо только добавить DYNAMIC. Например:
CRM_DYNAMIC_185_LIST_MENU
CRM_DYNAMIC_185_DETAIL_TAB
CRM_DYNAMIC_185_DETAIL_ACTIVITY
185 - ID конкретной сущности.
scope intranet
Код Встраивание Базы знаний
CRM
CRM_FUNNELS_TOOLBAR Кнопка в тулбаре Тунелей продаж
CRM_ANALYTICS_TOOLBAR Кнопка в тулбаре CRM-аналитики
CRM_*_LIST_TOOLBAR Кнопка около Роботов. Допустимые объекты: DEAL, LEAD, CONTACT, COMPANY, INVOICE, QUOTE.
CRM_*_DETAIL_TOOLBAR Кнопка в карточке сверху. Допустимые объекты: DEAL, LEAD, CONTACT, COMPANY, INVOICE, QUOTE
CRM_*_ACTIVITY_TIMELINE_MENU Кнопка в контекстном меню объекта (Только для объектов DEAL, LEAD).
CRM_*_DOCUMENTGENERATOR_BUTTON Кнопка в документах. Допустимые объекты: DEAL, LEAD, CONTACT, COMPANY, INVOICE, QUOTE
CRM_*_ROBOT_DESIGNER_TOOLBAR Кнопка в слайдере с роботами (Только для объектов DEAL, LEAD).
Задачи
TASK_USER_LIST_TOOLBAR Кнопка около Роботов.
TASK_GROUP_LIST_TOOLBAR Кнопка около Роботов.
TASK_ROBOT_DESIGNER_TOOLBAR Кнопка в слайдере с роботами.
Рабочие группы
SONET_GROUP_ROBOT_DESIGNER_TOOLBAR Кнопка у роботов в группе.
SONET_GROUP_TOOLBAR Кнопка на вкладке Основное в группе.
Профиль пользователя
USER_PROFILE_MENU Кнопка в главном меню портала. Также доступно в скоупах user, user_brief и user_basic.
USER_PROFILE_TOOLBAR Кнопка в профиле . Также доступно в скоупах user, user_brief и user_basic.
scope telephony
Код Карточка звонка
CALL_CARD Карточка звонка
Код Статистика звонков
TELEPHONY_ANALYTICS_MENU Меню статистики звонков
scope landing
Код Настройки
LANDING_SETTINGS Меню настроек (Страницы / Сайта)
Код Редактирование
LANDING_BLOCK Пункт редактирования любого блока.
scope worgroups
Код Настройки
SONET_GROUP_DETAIL_TAB Закладка рабочей группы.
scope task
Код Настройки
TASK_LIST_CONTEXT_MENU Контекстное меню списка задач.
TASK_VIEW_TAB Вкладка в форме просмотра задачи
TASK_VIEW_SIDEBAR Боковая панель формы просмотра задачи
TASK_VIEW_TOP_PANEL Пункт в верхнем меню формы просмотра задачи
scope calendar
Код Настройки
CALENDAR_GRIDVIEW Список видов отображения календаря
scope contact_center
Код Настройки
CONTACT_CENTER "Квадратик" в списке Контакт центра.
scope im
Код Приложения в Новом чате
IM_NAVIGATION Приложение для левого меню навигации (по сути, это приложение внутри окружения чата без встраивания непосредственно в чат).
IM_TEXTAREA Приложение для панели над полем ввода (генерация контента в момент написания сообщения).
IM_SIDEBAR Приложение для сайдбара (можно создавать приложения, добавляющие дополнительные сценарии для чата – например, отдельный диск для чата или базу знаний).
IM_CONTEXT_MENU Приложение для открытия контекстного меню сообщения внутри чата, встраивание в пункт "Создать контент на основании" (аналогом является "Создать задачу” или "Создать встречу" на основании сообщения).
IM_SMILES_SELECTOR Приложение для расширения возможностей смайлов и giphy (тут могут быть свои источники картинок или смайлов).
Произвольное место
Код Настройки
REST_APP_URI На каждом портале каждому приложению позволяется зарегистрировать только одну встройку методом placement.bind.

Эта встройка не имеет в интерфейсе кнопки, которая позволяет пользователю открыть её самостоятельно. Приложение может отправить ссылку на свою встройку. Для использования данной встройки ссылка должна быть в формате /marketplace/view/#APP_CODE#/, где #APP_CODE# - код вашего приложения.

Встройка может принимать любое количество параметров в get ключе params, например: /marketplace/view/#APP_CODE#/?params[test]=y. В этом случае в PLACEMENT_OPTIONS будет равен:

[
'test' = 'y'
]
Пример: как с помощью BBCode вставить данную ссылку в чат:
[url=/marketplace/view/'.$myApp['CODE'].'/?params[test]=y]uri[/url]

<?
$placement = 'REST_APP_URI';
$url = 'https://example.com/placement.php';
CRest::call(
	'placement.bind',
	[
		'PLACEMENT' => $placement,
		'HANDLER' => $url
	]
);
?>

Пример выше регистрирует на вашем портале встройку. Для данного PLACEMENT можно на портале зарегистрировать её только один раз, после этого она становится доступна для вызова. В вашем приложении вы можете разместить вашу встройку:

<a href="/marketplace/view/<?=$myApp['CODE']?>/">uri</a>

И разместить её в посте живой ленты:

<?
	CRest::call('log.blogpost.add',
		[
			'POST_TITLE' => 'Post Title',
			'POST_MESSAGE' => 'use this [url=/marketplace/view/'.$myApp['CODE'].'/?params[test]=y]uri[/url]',
			'DEST' => [ 'UA' ]
		]);
?>

И отправить её с помощью бота в чат пользователю методом:

<?
CRest::call(
	'imbot.message.add',
	[
		'DIALOG_ID' => 1,
		'MESSAGE' => 'use this [url=/marketplace/view/'.$myApp['CODE'].'/?params[test]=y]uri[/url]',

	]
);
?>

Ссылку можно вставить в любое текстовое поле, которое поддерживает BBCode или внутри ваших других встроек как обычную ссылку. А с помощью GET параметра params вы можете изменять отображаемые данные во встройке и использовать эту возможность в абсолютно разных сценариях, передавая любое количество параметров в GET ключе params, например: ?params[test]=yy.

PAGE_BACKGROUND_WORKER На каждом портале каждому приложению позволяется зарегистрировать только одну встройку методом placement.bind.
  • errorHandlerUrl - обязательное поле с URL обработчика ошибки. Если встройка долго грузится (дольше 3-5 сек), на этот URL приходит событие с текстом и кодом ошибки, а сама встройка удаляется.

Пример регистрации:

CRest::call(
	'placement.bind',
	[
		'PLACEMENT' => 'PAGE_BACKGROUND_WORKER',
		'HANDLER' => 'http://portal.vlads.bx/vlads/placement/?ty=1',
		'OPTIONS' => [
			'errorHandlerUrl' => 'http://portal.vlads.bx/vlads/logg.php?ty=1',
		],
		'LANG_ALL' => [
			'ru' => [
				'TITLE' => 'test',
			]
		]
	]
);

Данное место встройки поддерживает:

  • специальные JS-методы и события для встройки внешнего WebRTC-клиента, подробности читайте здесь,
  • регистрацию для отдельных пользователей.

стандартный scope для встроек placement
Код Меню
LEFT_MENU Левое меню

Дополнительно



© «Битрикс», 2001-2024, «1С-Битрикс», 2024