chat: sendActivityNotification

命名空间:microsoft.graph

在聊天范围内发送活动源通知。 有关发送通知以及发送通知的要求的更多详细信息,请参阅发送Teams活动通知

权限

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) TeamsActivity.Send
委派(个人 Microsoft 帐户) 不支持。
应用程序 TeamsActivity.Send

HTTP 请求

POST /chats/{chatId}/sendActivityNotification

请求标头

名称 说明
Authorization Bearer {token}。必需。
Content-Type application/json. Required.

请求正文

在请求正文中,提供参数的 JSON 表示形式。

下表显示了可用于此操作的参数。

参数 类型 说明
topic teamworkActivityTopic 通知的主题。 指定要讨论的资源。
activityType String 活动类型。 这必须在应用清单Teams声明
chainId Int64 可选。 用于替代上一个通知。 在后续请求 chainId 中使用相同的方法替代上一个通知。
previewText itemBody 预览通知文本。 Microsoft Teams显示前 150 个字符。
templateParameters keyValuePair 集合 活动源条目中定义的模板变量的值与activityType应用程序Teams相对应
recipient teamworkNotificationRecipient 通知的收件人。 仅Azure AD用户。 另请参阅 aadUserNotificationRecipient

将 topic 属性的值设置为 时 source ,支持 以下 资源 entityURL

注意: 实体 URL 必须与 URL 中的聊天相同或为聊天的子资源。 此外,Teams应用必须安装在聊天中。

响应

如果成功,此操作返回 204 No Content 响应代码。

示例

示例 1:通知用户在聊天中创建的任务

此示例演示如何发送在聊天中创建的新任务的活动源通知。 有关详细信息,请参阅发送Teams活动通知

请求

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}"
    },
    "activityType": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "Task 12322"
        }
    ] 
}

响应

HTTP/1.1 204 No Content

示例 2:通知用户聊天消息中所需的审批

与上一示例类似,此示例对 entityUrl 使用 topic。 但是,在这种情况下,它会链接到聊天中的消息。 邮件可以包含包含审批按钮的卡片。

请求

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}"
    },
    "activityType": "approvalRequired",
    "previewText": {
        "content": "Deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "Microsoft.Teams.GraphSvc.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

响应

HTTP/1.1 204 No Content

示例 3:使用用户主体名称通知用户聊天消息中所需的审批

与上一示例类似,此示例对 entityUrl 使用 topic。 但是,在这种情况下,它会链接到聊天中的消息。 邮件可包含一个卡片,其中包含审批按钮。

请求

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}"
    },
    "activityType": "approvalRequired",
    "previewText": {
        "content": "Deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "Microsoft.Teams.GraphSvc.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

响应

HTTP/1.1 204 No Content

示例 4:向用户通知与聊天相关的事件

如前面的示例所示,您可以链接到聊天的不同方面。 但是,如果要链接到不是聊天的一部分或不是由 Microsoft Graph 表示的方面,可以将 的源设置为 并topic``text传递其自定义值。 此外, webUrl 将 source 设置为 时 topic ,也是必需的 text

请求

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "text",
        "value": "Deployment Approvals Channel",
        "webUrl": "https://teams.microsoft.com/l/message/19:448cfd2ac2a7490a9084a9ed14cttr78c@thread.skype/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"
    },
    "recipient": {
        "@odata.type": "Microsoft.Teams.GraphSvc.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "deploymentId",
            "value": "6788662"
        }
    ]
}

响应

HTTP/1.1 204 No Content

另请参阅

通知源应用C#示例