Создание и отправка сообщений
Важно!
Соединители Microsoft 365 (ранее называемые соединителями Office 365) скоро устареют, и создание новых соединителей Microsoft 365 скоро будет заблокировано. Дополнительные сведения о расписании и о том, как приложение "Рабочие процессы" обеспечивает более гибкий и безопасный интерфейс, см. в статье Прекращение использования соединителей Microsoft 365 в Microsoft Teams.
Как создать веб-перехватчик в Teams?
Чтобы автоматически публиковать сообщения в чате или канале при получении запроса веб-перехватчика, используйте предопределенные шаблоны рабочих процессов или создайте рабочий процесс с нуля с помощью триггера При получении запроса веб-перехватчика Teams . Дополнительные сведения см. в статье Публикация рабочего процесса при получении запроса веб-перехватчика в Microsoft Teams.
Дополнительные сведения о триггере получения запроса веб-перехватчика Teams см. в разделе Microsoft Teams — webhook.
Если вы уже создали соединители Office 365:
Создание соединителя Power Automate. Power Automate расширяет возможности широко используемых приложений рабочих процессов в Teams. Это масштабируемый и безопасный подход к программной передаче данных в Teams и из нее. Если вы используете этот метод, вы можете создавать шаблоны рабочих процессов для публикации оповещений из продукта в каналах Teams. Такой подход упрощает внедрение пользователем нового метода. Дополнительные сведения см. в статье Power Automate для корпоративных разработчиков, независимых поставщиков программного обеспечения и партнеров.
Обновление приложения Teams. Вы можете улучшить текущее приложение Teams. Например, можно разрешить пользователям настраивать упреждающие сообщения на основе событий триггера в системе. Дополнительные сведения см. в статье о том, как боты могут отправлять сообщения в каналы с помощью упреждающих сообщений.
Известные проблемы
- Приложение workflows не может публиковать в частных каналах в качестве бота потока. Однако он может публиковаться от имени пользователя.
- Рабочие процессы поддерживают только адаптивные карточки. Он не поддерживает более старый формат карта сообщений, используемый Office 365 соединителями. Поддержка использования формата карта сообщений в рабочих процессах становится доступной с середины октября. Дополнительные сведения см. в статье Преобразование сообщений соединителя карта формат в адаптивную карточку.
- Рабочие процессы не предлагают сторонние соединители, такие как DataDog и Jenkins.
- Рабочие процессы можно создавать только в среде по умолчанию.
Ограничения
Рабочие процессы связаны только с определенными пользователями (которые называются владельцами рабочего процесса), а не с командой Или каналом Teams. Рабочие процессы могут стать потерянными потоками при отсутствии владельца, если совладельцы не назначены. Чтобы обеспечить непрерывность бизнес-процесса, автоматизированного потоком, администраторы могут добавить одного или нескольких совладельцев и предоставить им полный контроль над рабочим процессом. Они также могут добавить проверку подлинности для подключений (если таковые имеются) и включить поток, если он был отключен. Дополнительные сведения см. в разделе Управление потерянными потоками.
Для создания и отправки сообщений с действиями используйте входящий веб-перехватчик или соединитель Microsoft 365. Однако интерактивные сообщения доступны только пользователям с лицензией на Exchange Online.
Создание сообщений с действиями
Сообщения с действиями включают шесть видимых кнопок на карточке. Каждая кнопка определяется в свойстве potentialAction
сообщения с помощью ActionCard
действий, каждая из которых имеет тип ввода, текстовое поле, средство выбора даты или список с несколькими вариантами выбора. С каждым ActionCard
связано действие, например HttpPOST
.
Карточки соединителя поддерживают следующие действия.
-
ActionCard
: представляет один или несколько типов входных данных и соответствующие действия. -
HttpPOST
: отправляет запрос POST на URL-адрес. -
OpenUri
: открывает URI в отдельном браузере или приложении. При необходимости предназначен для различных URI в зависимости от операционных систем.
Действие ActionCard
поддерживает три типа входных данных:
-
TextInput
: однострочное или многострочное текстовое поле с необязательным ограничением длины. -
DateInput
: средство выбора даты с необязательным выбором времени. -
MultichoiceInput
: нумерованный список вариантов с возможностью выбора одного или нескольких пунктов.
MultichoiceInput
поддерживает свойство style
, указывающее, отображается ли список изначально полностью развернутым. Значение style
по умолчанию зависит от значения isMultiSelect
.
isMultiSelect |
по умолчанию style |
---|---|
false или не задано |
compact |
true |
expanded |
Чтобы отобразить список с несколькими вариантами выбора в компактном стиле, укажите "isMultiSelect": true
и "style": true
.
Дополнительные сведения о действиях с карточками соединителя см. в разделе Действия.
Примечание.
- Значение
compact
для свойстваstyle
в Microsoft Teams равноценно значениюnormal
для свойстваstyle
в Microsoft Outlook. - Для действия HttpPOST маркер носителя включается в запросы. Этот маркер включает Microsoft Entra удостоверение пользователя Microsoft 365, который выполнил действие.
Отправка сообщения через входящий веб-перехватчик или соединитель для Группы Microsoft 365
Чтобы отправить сообщение через входящий веб-перехватчик или соединитель для Группы Microsoft 365, опубликуйте полезные данные JSON на URL-адрес веб-перехватчика. Эти полезные данные должны быть в виде карта соединителя для Группы Microsoft 365.
С помощью этого кода JSON также можно создавать карточки с различными элементами для ввода данных, например текстовыми полями, переключателями множественного выбора или средствами выбора даты и времени. Код, генерирующий карточку и отправляющий ее на URL-адрес веб-перехватчика, может выполняться в любой размещенной службе. Эти карточки определяются как часть сообщений с действиями, а также поддерживаются в карточках , используемых в ботах Teams и расширениях сообщений.
Пример сообщения соединителя
Пример сообщения соединителя выглядит следующим образом.
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"themeColor": "0076D7",
"summary": "Larry Bryant created a new task",
"sections": [{
"activityTitle": "Larry Bryant created a new task",
"activitySubtitle": "On Project Tango",
"activityImage": "https://adaptivecards.io/content/cats/3.png",
"facts": [{
"name": "Assigned to",
"value": "Unassigned"
}, {
"name": "Due date",
"value": "Mon May 01 2017 17:07:18 GMT-0700 (Pacific Daylight Time)"
}, {
"name": "Status",
"value": "Not started"
}],
"markdown": true
}],
"potentialAction": [{
"@type": "ActionCard",
"name": "Add a comment",
"inputs": [{
"@type": "TextInput",
"id": "comment",
"isMultiline": false,
"title": "Add a comment here for this task"
}],
"actions": [{
"@type": "HttpPOST",
"name": "Add comment",
"target": "https://video2.skills-academy.com/outlook/actionable-messages"
}]
}, {
"@type": "ActionCard",
"name": "Set due date",
"inputs": [{
"@type": "DateInput",
"id": "dueDate",
"title": "Enter a due date for this task"
}],
"actions": [{
"@type": "HttpPOST",
"name": "Save",
"target": "https://video2.skills-academy.com/outlook/actionable-messages"
}]
}, {
"@type": "OpenUri",
"name": "Learn More",
"targets": [{
"os": "default",
"uri": "https://video2.skills-academy.com/outlook/actionable-messages"
}]
}, {
"@type": "ActionCard",
"name": "Change status",
"inputs": [{
"@type": "MultichoiceInput",
"id": "list",
"title": "Select a status",
"isMultiSelect": "false",
"choices": [{
"display": "In Progress",
"value": "1"
}, {
"display": "Active",
"value": "2"
}, {
"display": "Closed",
"value": "3"
}]
}],
"actions": [{
"@type": "HttpPOST",
"name": "Save",
"target": "https://video2.skills-academy.com/outlook/actionable-messages"
}]
}]
}
На следующем рисунке показан пример сообщения соединителя, карта в канале:
Отправка сообщений с помощью cURL и PowerShell
Чтобы опубликовать сообщение в веб-перехватчике с помощью cURL. выполните следующие действия.
Установите cURL с сайта cURL.
Введите в командной строке следующую команду cURL:
// on macOS or Linux curl -H 'Content-Type: application/json' -d '{"text": "Hello World"}' <YOUR WEBHOOK URL>
// on Windows curl.exe -H "Content-Type:application/json" -d "{'text':'Hello World'}" <YOUR WEBHOOK URL>
Примечание.
В случае успешного выполнения запроса POST команда
curl
должна возвращать простой отклик 1.Проверьте наличие новой опубликованной карты в клиенте Teams.
Отправка адаптивных карточек с помощью входящего веб-перехватчика
Примечание.
- Все собственные элементы схемы адаптивных карточек, кроме
Action.Submit
, полностью поддерживаются. - Поддерживаемые действия: Action.OpenURL, Action.ShowCard и Action.ToggleVisibility.
Чтобы отправить адаптивные карточки с текстом или изображением в кодировке Base64 через входящий веб-перехватчик, выполните следующие действия.
- Настройка пользовательского веб-перехватчика в Teams.
- Создайте JSON-файл адаптивной карточки, используя следующий код:
{
"type":"message",
"attachments":[
{
"contentType":"application/vnd.microsoft.card.adaptive",
"contentUrl":null,
"content":{
"$schema":"http://adaptivecards.io/schemas/adaptive-card.json",
"type":"AdaptiveCard",
"version":"1.2",
"body":[
{
"type": "TextBlock",
"text": "For Samples and Templates, see [https://adaptivecards.io/samples](https://adaptivecards.io/samples)"
}
]
}
}
]
}
Имеются следующие свойства JSON-файла адаптивной карточки.
- Поле
"type"
должно иметь значение"message"
. - Массив
"attachments"
содержит набор объектов card. - В поле
"contentType"
следует задать тип "Адаптивная карточка". - Объект
"content"
— это карточка, отформатированная в JSON.
Проверьте адаптивную карточку с помощью Postman.
- Протестируйте адаптивную карточку с помощью Postman для отправки запроса POST на URL-адрес, созданный для настройки входящих веб-перехватчиков.
- Вставьте файл JSON в текст запроса и просмотрите сообщение адаптивной карточки в Teams.
Совет
Используйте примеры кода и шаблоны адаптивной карточки для проверки основной части запроса POST.
Ограничение скорости для соединителей
Ограничения скорости приложений управляют трафиком, который разрешено создавать в канале соединителю или входящему веб-перехватчику. Teams отслеживает запросы с помощью окна фиксированной скорости и добавочного счетчика, измеряемого в секундах. Если за секунду было выполнено более четырех запросов, клиентское подключение будут ограничено до тех пор, пока окно не обновится в течение длительности окна фиксированной скорости.
Пороговые значения количества транзакций в секунду
В следующей таблице представлены сведения о транзакциях с учетом времени.
Время в секундах | Максимальное разрешенное количество запросов |
---|---|
1 | 4 |
30 | 60 |
3600 | 100 |
7200 | 150 |
86400 | 1800 |
Примечание.
Логика повторных попыток с экспоненциальной задержкой поможет избежать ограничения скорости в тех случаях, когда число запросов за секунду превышает пределы. См. за откликами HTTP 429, чтобы не достигать ограничений по скорости.
// Please note that response body needs to be extracted and read
// as Connectors do not throw 429s
try
{
// Perform Connector POST operation
var httpResponseMessage = await _client.PostAsync(IncomingWebhookUrl, new StringContent(content));
// Read response content
var responseContent = await httpResponseMessage.Content.ReadAsStringAsync();
if (responseContent.Contains("Microsoft Teams endpoint returned HTTP error 429"))
{
// initiate retry logic
}
}
Эти ограничения установлены с целью предотвратить перегрузку канала запросами от соединителя и обеспечивают удобство работы пользователей.
См. также
Platform Docs