Создание соединителей для Группы Microsoft 365

С помощью приложений Microsoft Teams можно добавить существующий соединитель для Группы Microsoft 365 или создать новый в Teams. Дополнительные сведения см. в статье Создание собственного соединителя.

См. следующее видео, чтобы узнать, как создать соединители для Группы Microsoft 365:


Примечание.

В этом разделе представлена версия 2.0.x клиентской библиотеки JavaScript (TeamsJS) Microsoft Teams. Если вы используете более раннюю версию, ознакомьтесь с обзором библиотеки TeamsJS , чтобы узнать о различиях между последней версией TeamsJS и более ранними версиями.

Добавление соединителя в приложение Teams

Вы можете создать пакет и опубликовать соединитель в рамках отправки в AppSource. Зарегистрированный соединитель можно распространять в составе пакета приложений Teams. Сведения о точках входа для приложения Teams см. в разделе Возможности. Вы также можете предоставить пакет непосредственно пользователям для отправки в Teams.

Чтобы распространить соединитель, зарегистрируйте его на информационной панели разработчика соединителей.

Чтобы соединитель работал только в Teams, следуйте инструкциям, чтобы отправить соединитель при публикации приложения в Microsoft Teams Store . В противном случае зарегистрированный соединитель работает во всех продуктах Microsoft 365, поддерживающих приложения, включая Outlook и Teams.

Важно!

Соединитель регистрируется после выбора Сохранить на информационной панели разработчика соединителей. Если вы хотите опубликовать свой соединитель в AppSource, следуйте инструкциям в статье Публикация приложения Microsoft Teams в AppSource. Если вы не хотите публиковать приложение в AppSource, распространяйте его непосредственно в организации. После публикации соединителей для организации никаких дополнительных действий на информационной панели соединителей не требуется.

Интеграция возможностей настройки

Пользователи могут выполнять весь процесс настройки соединителя, не выходя из клиента Teams. Чтобы получить больше возможностей, Teams может внедрить вашу страницу конфигурации непосредственно в IFrame. Последовательность операций выглядит следующим образом:

  1. Пользователь выбирает соединитель, чтобы начать процесс настройки.

  2. Пользователь взаимодействует с веб-интерфейсом для завершения настройки.

  3. Пользователь нажимает Сохранить, что вызывает обратный вызов в коде.

    Примечание.

    • Код может обрабатывать событие сохранения, получая параметры веб-перехватчика. Код сохраняет веб-перехватчик для последующей публикации событий.
    • Процесс настройки загружается в Teams.

Вы можете повторно использовать существующие возможности веб-настройки или создать отдельную версию для размещения специально в Teams. Код должен содержать библиотеку TeamsJS. Это дает коду доступ к API для выполнения распространенных операций, таких как получение контекста текущего пользователя, канала или команды, а также запуск потоков проверки подлинности.

Чтобы интегрировать процесс конфигурации:

Примечание.

Начиная с библиотеки TeamsJS версии 2.0.0, API в пространстве имен параметров устарели в пользу эквивалентных API в пространстве имен страниц , включая pages.getConfig() и другие API в pages.config подпространстве имен. Дополнительные сведения см. в статье Новые возможности TeamsJS версии 2.x.x.

  1. Инициализируйте TeamsJS, вызвав .app.initialize()

  2. Вызовите pages.config.setValidityState(true) для включения параметра Сохранить.

    Примечание.

    Необходимо вызвать microsoftTeams.pages.config.setValidityState(true) в ответ на выбор пользователя или обновление поля.

  3. Обработчик событий register microsoftTeams.pages.config.registerOnSaveHandler() , который вызывается, когда пользователь выбирает Сохранить.

  4. Вызовите microsoftTeams.pages.config.setConfig(), чтобы сохранить параметры соединителя. Сохраненные параметры также отображаются в диалоговом окне конфигурации, если пользователь пытается обновить существующую конфигурацию вашего соединителя.

  5. Вызовите microsoftTeams.pages.getConfig() для получения свойств веб-перехватчика, включая URL-адрес.

    Примечание.

    При первой загрузке страницы в случае перенастройки необходимо вызвать microsoftTeams.pages.getConfig().

  6. Зарегистрируйте обработчик событий microsoftTeams.pages.config.registerOnRemoveHandler(), который будет вызван, когда пользователь удаляет соединитель.

Это событие дает вашей службе возможность выполнять любые действия по очистке.

В следующем коде представлен пример HTML для создания страницы конфигурации соединителя без центра обслуживания клиентов и службы поддержки клиентов:

<h2>Send notifications when tasks are:</h2>
<div class="col-md-8">
    <section id="configSection">
        <form id="configForm">
            <input type="radio" name="notificationType" value="Create" onclick="onClick()"> Created
            <br>
            <br>
            <input type="radio" name="notificationType" value="Update" onclick="onClick()"> Updated
        </form>
    </section>
</div>

<script src="https://res.cdn.office.net/teams-js/2.2.0/js/MicrosoftTeams.min.js" integrity="sha384-Q2Z9S56exI6Oz/ThvYaV0SUn8j4HwS8BveGPmuwLXe4CvCUEGlL80qSzHMnvGqee" crossorigin="anonymous"></script>
<script src="/Scripts/jquery-1.10.2.js"></script>

<script>
        function onClick() {
            pages.config.setValidityState(true);
        }

        await microsoftTeams.app.initialize();
        pages.config.registerOnSaveHandler(function (saveEvent) {
            var radios = document.getElementsByName('notificationType');

            var eventType = '';
            if (radios[0].checked) {
                eventType = radios[0].value;
            } else {
                eventType = radios[1].value;
            }

            await pages.config.setConfig({
                entityId: eventType,
                contentUrl: "https://YourSite/Connector/Setup",
                removeUrl:"https://YourSite/Connector/Setup",
                configName: eventType
                });

            pages.getConfig().then(async (config) {
                // We get the Webhook URL from config.webhookUrl which needs to be saved. 
                // This can be used later to send notification.
            });

            saveEvent.notifySuccess();
        });

        pages.config.registerOnRemoveHandler(function (removeEvent) {
            alert("Removed" + JSON.stringify(removeEvent));
        });

</script>

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

Примечание.

До версии TeamsJS версии 2.0.0 код должен вызываться microsoftTeams.authentication.registerAuthenticationHandlers() с помощью URL-адреса и методов обратного вызова успешного или неудачного вызова перед вызовом authenticate() из-за соображений совместимости между клиентами. Начиная с TeamsJS версии 2.0.0 , параметр registerAuthenticationHandlers не рекомендуется использовать для прямого вызова authentication() с необходимыми параметрами проверки подлинности.

Свойства ответа getConfig

Примечание.

Параметры, возвращаемые вызовом getConfig , отличаются при вызове этого метода из вкладки и отличаются от тех, которые описаны в ссылке.

В следующей таблице представлены параметры и сведения о свойствах ответа getConfig:

Параметры Details
entityId Идентификатор сущности, который задается кодом при вызове setConfig().
configName Имя конфигурации, заданное кодом при вызове setConfig().
contentUrl URL-адрес страницы конфигурации, заданный кодом при вызове setConfig().
webhookUrl URL-адрес веб-перехватчика, созданный для соединителя. Используйте URL-адрес веб-перехватчика для структурированного JSON POST для отправки карточек в канал. Возвращается webhookUrl только в том случае, если приложение успешно возвращает данные.
appType Возвращаемые значения могут быть mail, groupsили teams соответствующими microsoft 365 Mail, Группы Microsoft 365 или Teams. Соответственно.
userObjectId Уникальный идентификатор, соответствующий пользователю Microsoft 365, инициировавшему настройку соединителя. Он должен быть защищен. Это значение можно использовать для связывания пользователя в Microsoft 365, который настроил конфигурацию в вашей службе.

Обработка изменений

Код должен обрабатывать пользователей, которые возвращаются для изменения существующей конфигурации соединителя. Для этого вызовите microsoftTeams.pages.config.setConfig() во время начальной настройки со следующими параметрами:

  • entityId — это настраиваемый идентификатор, который представляет то, что пользователь настроил и понял с помощью службы.
  • configName — это имя, которое может получить код конфигурации.
  • contentUrl — это настраиваемый URL-адрес, который загружается, когда пользователь изменяет существующую конфигурацию соединителя.

Этот вызов выполняется как часть обработчика событий сохранения. Затем при загрузке contentUrl кода необходимо вызвать getConfig() , чтобы предварительно заполнить все параметры или формы в пользовательском интерфейсе конфигурации.

Обработка удалений

Обработчик событий можно выполнить, когда пользователь удаляет существующую конфигурацию соединителя. Этот обработчик регистрируется путем вызова microsoftTeams.pages.config.registerOnRemoveHandler(). Этот обработчик используется для выполнения операций очистки, таких как удаление записей из базы данных.

Включение соединителя в манифест приложения

Скачайте автоматически созданный манифест приложения (ранее — манифест приложения Teams) на портале разработчика (https://dev.teams.microsoft.com). Выполните следующие шаги перед проверкоц или публикацией приложения:

  1. Включение двух значков.
  2. Измените icons часть в файле манифеста приложения, чтобы включить имена файлов значков вместо URL-адресов.

Следующий пример manifest.json содержит элементы, необходимые для тестирования и отправки приложения:

Примечание.

Замените id и connectorId в приведенном ниже примере на глобальный уникальный ИД соединителя.

Пример manifest.json с соединителем

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
  "manifestVersion": "1.5",
  "id": "e9343a03-0a5e-4c1f-95a8-263a565505a5",
  "version": "1.0",
  "developer": {
    "name": "Publisher",
    "websiteUrl": "https://www.microsoft.com",
    "privacyUrl": "https://www.microsoft.com",
    "termsOfUseUrl": "https://www.microsoft.com"
  },
  "description": {
    "full": "This is a small sample app we made for you! This app has samples of all capabilities Microsoft Teams supports.",
    "short": "This is a small sample app we made for you!"
  },
  "icons": {
    "outline": "sampleapp-outline.png",
    "color": "sampleapp-color.png"
  },
  "connectors": [
    {
      "connectorId": "e9343a03-0a5e-4c1f-95a8-263a565505a5",
      "scopes": [
        "team"
      ]
    }
  ],
  "name": {
    "short": "Sample App",
    "full": "Sample App"
  },
  "accentColor": "#FFFFFF",
  "needsIdentity": "true"
}

Проверка соединители

Чтобы проверить соединитель, отправьте его команде с любым другим приложением. Пакет .zip можно создать с помощью файла манифеста приложения из двух файлов значков и панели мониторинга разработчика соединителей, измененных в соответствии с указаниями в разделе Включение соединителя в манифест приложения.

После отправки приложения откройте список соединителей с любого канала. Прокрутите вниз, чтобы найти свое приложение в разделе Отправленные.

Снимок экрана: раздел отправки в диалоговом окне соединителя.

Примечание.

Поток полностью выполняется в Teams в качестве размещенного интерфейса.

Чтобы убедиться, что действие HttpPOST работает правильно, отправьте сообщения в свой соединитель.

Следуйте инструкциям по созданию и тестированию соединителей в Teams.

Распространение веб-перехватчика и соединителя

  1. Создавайте входящие веб-перехватчики непосредственно для своей команды.

  2. Добавьте страницу конфигурации и опубликуйте входящий веб-перехватчик в соединителе для Группы Microsoft 365.

  3. Упакуйте и опубликуйте свой соединитель как часть отправки в AppSource.

Пример кода

В следующей таблице приведены имя примера и его описание:

Название примера Описание .NET Node.js
Уведомление о todo соединителя В этом примере показан соединитель для Группы Microsoft 365, который создает и отправляет уведомления для канала Teams. Просмотр View
Пример универсальных соединителей В этом примере показан универсальный соединитель, который легко настроить для любой системы, поддерживающей веб-перехватчики. Н/Д View

Пошаговые инструкции

Следуйте пошаговым инструкциям для создания и тестирования соединителя в Teams.

Дополнительные ресурсы