Файл расширения представляет собой ZIP-архив с расширением .cgplugin .
В корне архива обязательно должен находиться файл описания расширения cgplugin.json .
JSON-Schema для него: cgplugin.schema.json.
Основные параметры файла конфигурации расширения:
id (обязательно) - Название расширения. Латиница, цифры и подчёркивание. Должно быть уникальным для конкретного расширения. Рекомендуется использовать обратную запись названия домена перед именем расширения, например, ru_communigatepro_ExamplePlugin
author (обязательно) - Имя автора расширения. Например, Ivan Ivanov или AO SBK
version (обязательно) - Версия расширения по SemVer 2.0. Например, 1.0.0
title (обязательно) - Имя поля из словарей локализации, которое будет использоваться при отображении расширения в интерфейсе администрирования. Например, PluginTitle .
url - Адрес домашней страницы расширения. Например, https://communigatepro.ru/
icon - Опциональное имя файла иконки из архива для отображения расширения при просмотре его через интерфейс администрирования. Иконка должна быть в формате svg и иметь пропорции 1:1 (квадратные).
При загрузке расширения из него автоматически загружаются доступные файлы локализации
с расширением .data в формате Словарей CommuniGate Pro.
Данные из этих словарей будут доступны другому коду, в том числе, скриптам на CG/PL, содержащимся в расширении,
с префиксом вида <id расширения>. .
Список точек расширения заполняется в секции extends файла описания. Доступны несколько типов расширений, описанные ниже.
Описываются в секции config в виде объекта с описаниями параметров конфигурации. Каждый ключ - идентификатор
одного параметра конфигурации, под которым он будет храниться и передаваться запускаемым из расширения скриптам CG/PL.
type (обязательно) - Тип параметра, используется для выбора формата хранения параметра и типа отображаемого в интерфейсе администрирования виджета. На данный момент поддерживаются только параметры типов string и boolean .
title (обязательно) - Строка из файлов локализации, которая будет использоваться при отображении названия параметра в интерфейсе администрирования.
required - Обязателен ли параметр конфигурации для заполнения (если поле отсутствует, параметр необязательный).
editPresentation - Позволяет указать способ отображения элемента управления для параметра. Для типа string поддерживаются password и multilineText . Если для string ничего не указано, будет показано обычное однострочное поле ввода.
Пример:
{
"extends": {
"config": {
"APIKey": {
"type": "string",
"editPresentation": "password",
"title": "APIKeyTitle",
"required": true
}
}
}
}
В расширение можно добавить файл сценария на языке CG/PL, выполняющий проверку корректности заполнения
параметров конфигурации. Данный файл должен находиться в архиве с расширением.
Такой файл сценария может как выполнять базовые проверки по регулярным выражениям или заполнению полей,
так и проверять корректность введённых параметров путём обращения к внешнему серверу. В файле сценария
должен содержаться метод checkConfig , выполняющий проверку параметров
конфигурации, доступных ему через свойство pluginSettings окружения запуска сценария.
Пример параметра:
{
"extends": {
"config": {
"APIKey": {
"type": "string",
"title": "APIKeyTitle",
"required": true
}
},
"checkConfig": "checkconfig.scgp"
}
}
Пример файла сценария:
entry checkConfig {
var settings = Vars().pluginSettings;
if (Length(settings.APIKey) != 10) {
SetResult("invalid API key")
}
}
Описываются в секции vcs в виде объекта с описаниями предоставляемых расширением скриптов
для интеграции систем видеоконференцсвязи (далее - ВКС). Ключ - идентификатор, который будет использоваться
для определения конкретной системы ВКС внутри CommuniGate Pro. Каждое описание - объект со следующими параметрами:
-
title (обязательно) - Строка из файлов локализации, которая
будет использоваться при отображении параметра в интерфейсе пользователя.
-
script (обязательно) - Имя (с расширением) находящегося в архиве файла сценария
на языке CG/PL, реализующего интеграцию с ВКС.
-
icon - Опционально: имя svg-файла с пиктограммой из архива. Пиктограмма будет отображаться
пользователю в элементах интерфейса, связанных с конкретной системой видеоконференций. Она должна иметь
пропорции 1:1 (квадратные).
Пример:
{
"extends": {
"vcs": {
"bbb": {
"title": "BBBTitle",
"script": "bbb.scgp",
"icon": "bbb.svg"
}
}
}
}
Каждый модуль поддержки видеоконференции должен быть отдельным сценарием CG/PL в формате scgp.
Каждая функция оформляется отдельным методом внутри файла сценария (отдельной «точкой входа»). Сценарий всегда
запускается в контексте пользователя, создающего конференцию, будь то через событие в календаре или
через кнопку в чате.
Функции, которые должны быть реализованы в коде файла сценария, описаны ниже.
createConf
-
Создаёт видеоконференцию.
Параметры:
title
-
(опционально) Тема конференции.
description
-
(опционально) Подробное описание темы конференции.
participants
-
(опционально) Массив объектов, описывающих участников конференции.
name
- (опционально) Имя участника
email
- Адрес e-mail участника
Возвращаемое значение:
cid
- ID созданной конференции в строковом формате. Строка должна быть URL friendly
и не содержать пробелов.
link
- Общая ссылка на подключение к конференции.
participantLinks
-
(опционально) Словарь объектов, содержащих в себе индивидуальные ссылки
на подключение к конференции для всех зарегистрированных участников. Если данная интеграция
не поддерживает создание индивидуальных ссылок, параметр можно не указывать.
Ключ в словаре - aдрес e-mail участника, значение - индивидуальная ссылка для подключения к конференции.
Ошибка:
error
- Текстовое описание ошибки при создании конференции
|