Обучение
Модуль
Connect web services to Microsoft Teams using webhooks - Training
Learn how to create Incoming Webhooks and Outgoing Webhooks that connect web services to teams and channels in Microsoft Teams.
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Важно!
Соединители 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. Например, можно разрешить пользователям настраивать упреждающие сообщения на основе событий триггера в системе. Дополнительные сведения см. в статье о том, как боты могут отправлять сообщения в каналы с помощью упреждающих сообщений.
Известные проблемы
Ограничения
Рабочие процессы связаны только с определенными пользователями (которые называются владельцами рабочего процесса), а не с командой Или каналом 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.Чтобы отправить сообщение через входящий веб-перехватчик или соединитель для Группы 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://learn.microsoft.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://learn.microsoft.com/outlook/actionable-messages"
}]
}, {
"@type": "OpenUri",
"name": "Learn More",
"targets": [{
"os": "default",
"uri": "https://learn.microsoft.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://learn.microsoft.com/outlook/actionable-messages"
}]
}]
}
На следующем рисунке показан пример сообщения соединителя, карта в канале:
Чтобы опубликовать сообщение в веб-перехватчике с помощью 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
, полностью поддерживаются.Чтобы отправить адаптивные карточки с текстом или изображением в кодировке Base64 через входящий веб-перехватчик, выполните следующие действия.
{
"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.
Совет
Используйте примеры кода и шаблоны адаптивной карточки для проверки основной части запроса 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
Platform Docs — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Обучение
Модуль
Connect web services to Microsoft Teams using webhooks - Training
Learn how to create Incoming Webhooks and Outgoing Webhooks that connect web services to teams and channels in Microsoft Teams.