Поделиться через


командная работа: sendActivityNotificationToRecipients

Пространство имен: microsoft.graph

Отправка уведомлений из веб-канала действий нескольким пользователям в пакетном режиме.

Дополнительные сведения см. в статье Отправка уведомлений о действиях Teams.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) TeamsActivity.Send Недоступно.
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение TeamsActivity.Send.User TeamsActivity.Send

Заметка: Разрешение TeamsActivity.Send.User использует согласие для конкретного ресурса. Разрешения RSC относятся к отдельным получателям в полезных данных.

HTTP-запрос

POST /teamwork/sendActivityNotificationToRecipients

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательно.

Примечание. Предоставленный маркер должен быть не менее 45 минут с момента истечения срока действия. Вызов API вернет ответ, 412 Precondition Failed если срок действия маркера истекает в течение 45 минут.

Текст запроса

В тексте запроса укажите представление параметров в формате JSON.

В следующей таблице указаны параметры, которые можно использовать с этим действием.

Параметр Тип Описание
activityType String Тип действия должен быть объявлен в манифесте приложения Teams, за systemDefault исключением типа зарезервированного действия, который предоставляет текст в свободной форме в строке Actor+Reason уведомления.
chainId Int64 Необязательный параметр. Идентификатор цепочки уведомления. Используется для переопределения предыдущего уведомления. Используйте то же chainId самое в последующих запросах, чтобы переопределить предыдущее уведомление.
iconId String Необязательный параметр. Уникальный идентификатор значка, позволяющий приложениям отправлять настраиваемые значки для каждого типа действия. Идентификаторы значков должны присутствовать в схеме манифеста приложения Teams. Если идентификатор значка указан в манифесте, но отсутствует в тексте запроса API, значок возвращается к значку по умолчанию для приложения.
previewText itemBody Текст предварительного просмотра для уведомления. В Microsoft Teams отображаются только первые 150 символов.
recipients коллекция teamworkNotificationRecipient Получатели уведомления. Поддерживаются только получатели типа aadUserNotificationRecipient . Существует верхний предел в 100 получателей в одном запросе.
teamsAppId String Необязательный параметр. Идентификатор приложения Teams, связанного с уведомлением. Используется для устранения неоднозначности установленных приложений, когда для одного и того же пользователя-получателя установлено несколько приложений с одинаковым Microsoft Entra ID идентификатором приложения. Избегайте совместного использования идентификаторов приложений Microsoft Entra ID между приложениями Teams.
templateParameters Коллекция keyValuePair Значения переменных шаблона, определенных в записи веб-канала действий, activityType соответствующей в манифесте приложения Teams.
topic teamworkActivityTopic Раздел уведомления. Указывает ресурс, о котором идет речь.

Следующий ресурс поддерживается при установке source значения свойства раздела в entityUrl:

Отклик

В случае успешного выполнения это действие возвращает код отклика 202 Accepted.

Примеры

Пример 1. Уведомление нескольких пользователей об ожидающих запросах на утверждение финансов

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

Запрос

POST https://graph.microsoft.com/v1.0/teamwork/sendActivityNotificationToRecipients
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/{teamsAppId}"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipients": [
    	{
        	"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        	"userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    	},
    	{
        	"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        	"userId": "ab88234e-0874-477c-9638-d144296ed04f"
    	},
    	{
        	"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        	"userId": "01c64f53-69aa-42c7-9b7f-9f75195d6bfc"
    	}
    ],
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Отклик

HTTP/1.1 202 Accepted

Пример 2. Уведомление нескольких пользователей о событии с помощью пользовательского раздела

Если вы хотите связать аспект, который не представлен в Microsoft Graph, или вы хотите настроить имя, можно задать источник topictext объекта в и передать для него настраиваемое значение. webUrl является обязательным при использовании topic источника в качестве text.

Запрос

POST https://graph.microsoft.com/v1.0/teamwork/sendActivityNotificationToRecipients
Content-Type: application/json

{
    "topic": {
        "source": "text",
        "value": "Deployment Approvals Channel",
        "webUrl": "https://teams.microsoft.com/l/message/19:[email protected]/1605223780000?tenantId=c8b1bf45-3834-4ecf-971a-b4c755ee677d&groupId=d4c2a937-f097-435a-bc91-5c1683ca7245&parentMessageId=1605223771864&teamName=Approvals&channelName=Azure%20DevOps&createdTime=1605223780000"
    },
    "activityType": "deploymentApprovalRequired",
    "previewText": {
        "content": "New deployment requires your approval"
    },
    "templateParameters": [
        {
            "name": "deploymentId",
            "value": "6788662"
        }
    ],
    "recipients": [
    	{
        	"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        	"userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    	},
    	{
        	"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        	"userId": "ab88234e-0874-477c-9638-d144296ed04f"
    	},
    	{
        	"@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        	"userId": "01c64f53-69aa-42c7-9b7f-9f75195d6bfc"
    	}
    ]
}

Отклик

HTTP/1.1 202 Accepted

Пример 3. Уведомление нескольких пользователей о событии с помощью пользовательского значка

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

Заметка: Для activityType использования этого параметра в манифесте должен содержаться список разрешенных идентификаторов значков. Проверка запроса завершается ошибкой, если в манифесте приложения отсутствует настраиваемый список значков. Дополнительные сведения см. в разделе Общедоступная предварительная версия манифеста приложения для разработчиков.

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/v1.0/teamwork/sendActivityNotificationToRecipients
Content-Type: application/json

{
  "topic": {
    "source": "text",
    "value": "Deployment Approvals Channel",
    "webUrl": "https://teams.microsoft.com/l/message/19:[email protected]/1605223780000?tenantId=c8b1bf45-3834-4ecf-971a-b4c755ee677d&groupId=d4c2a937-f097-435a-bc91-5c1683ca7245&parentMessageId=1605223771864&teamName=Approvals&channelName=Azure%20DevOps&createdTime=1605223780000"
  },
  "activityType": "announcementPosted",
  "previewText": {
    "content": "new announcemnet posted"
  },
  "iconId": "announcementCreated",
  "templateParameters": [
    {
      "name": "deploymentId",
      "value": "6788662"
    }
  ],
  "recipients": [
    {
      "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
      "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    {
      "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
      "userId": "ab88234e-0874-477c-9638-d144296ed04f"
    },
    {
      "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
      "userId": "01c64f53-69aa-42c7-9b7f-9f75195d6bfc"
    }
  ]
}

Отклик

Ниже приводится пример отклика.

HTTP/1.1 202 Accepted