Compartilhar via


chat: sendActivityNotification

Namespace: microsoft.graph

Enviar uma notificação do feed de atividades no âmbito de uma conversa. Para obter mais informações sobre o envio de notificações e os requisitos para o fazer, veja Enviar notificações de atividade do Teams.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) TeamsActivity.Send Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application TeamsActivity.Send.Chat TeamsActivity.Send

Nota: A TeamsActivity.Send.Chat permissão utiliza o consentimento específico do recurso.

Solicitação HTTP

POST /chats/{chatId}/sendActivityNotification

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON dos parâmetros.

A tabela a seguir mostra os parâmetros que podem ser usados com esta ação.

Parâmetro Tipo Descrição
topic teamworkActivityTopic O tópico da notificação. Especifica o recurso que está a ser falado.
activityType Cadeia de caracteres O tipo de atividade tem de ser declarado no manifesto da aplicação Teams, exceto no systemDefaulttipo de atividade Reservada, que fornece texto de forma livre na Actor+Reason linha da notificação.
chainId Int64 Opcional. O ID da cadeia da notificação. Utilizado para substituir uma notificação anterior. Utilize o mesmo chainId nos pedidos subsequentes para substituir a notificação anterior.
previewText itemBody O texto de pré-visualização da notificação. O Microsoft Teams mostra os primeiros 150 carateres.
templateParameters Coleção keyValuePair Os valores das variáveis de modelo definidas na entrada do feed de atividades correspondente ao activityType no manifesto da aplicação Teams.
destinatário teamworkNotificationRecipient O destinatário da notificação. Para obter mais informações, veja aadUserNotificationRecipient e chatMembersNotificationRecipient.
teamsAppId String Opcional. O ID da aplicação Teams da aplicação Teams associada à notificação. Utilizado para desambiguar aplicações instaladas quando são instaladas várias aplicações com o mesmo ID da aplicação Microsoft Entra ID para o mesmo utilizador destinatário. Evite partilhar IDs da aplicação Microsoft Entra ID entre aplicações do Teams.

Os seguintes recursos são suportados ao definir o source valor da propriedade do tópico como entityURL:

Nota: O URL da entidade tem de ser o mesmo que ou um recurso subordinado do chat no URL. Além disso, a aplicação Teams tem de ser instalada no chat.

Resposta

Se tiver êxito, esta ação retornará um código de resposta 204 No Content.

Exemplos

Exemplo 1: Notificar um utilizador sobre uma tarefa criada num chat

O exemplo seguinte mostra como pode enviar uma notificação do feed de atividades para uma nova tarefa criada num chat. Para obter mais informações, veja Enviar notificações de atividade do Teams.

Solicitação

O exemplo a seguir mostra a solicitação.

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"
        }
    ] 
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 2: Notificar um utilizador sobre uma aprovação necessária numa mensagem de chat

Semelhante ao exemplo anterior, este exemplo utiliza entityUrl para o topic. No entanto, neste caso, liga a uma mensagem no chat. A mensagem pode conter um cartão com o botão de aprovação.

Solicitação

O exemplo a seguir mostra a solicitação.

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.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 3: Notificar um utilizador sobre uma aprovação necessária numa mensagem de chat com o nome principal de utilizador

Semelhante ao exemplo anterior, este exemplo utiliza entityUrl para o topic. No entanto, neste caso, liga a uma mensagem no chat. A mensagem pode conter um cartão com o botão de aprovação.

Solicitação

O exemplo a seguir mostra a solicitação.

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.graph.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 4: Notificar um utilizador sobre um evento em relação a um chat

Conforme mostrado nos exemplos anteriores, pode ligar a diferentes aspetos do chat. No entanto, se quiser ligar a um aspeto que não faça parte do chat ou não seja representado pelo Microsoft Graph, pode definir a origem do topic para text e transmitir um valor personalizado para o mesmo. Além disso, webUrl é necessário ao definir topic a origem como text.

Solicitação

O exemplo a seguir mostra a solicitação.

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.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "deploymentId",
            "value": "6788662"
        }
    ]
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 5: Notificar os membros do chat sobre uma tarefa criada num chat

O exemplo seguinte mostra como pode enviar uma notificação do feed de atividades a todos os membros do chat. Este exemplo é semelhante aos exemplos anteriores. No entanto, neste caso, o destinatário é um chatMembersNotificationRecipient. O chatId especificado no destinatário tem de corresponder ao chatId especificado no URL do pedido.

Solicitação

O exemplo a seguir mostra a solicitação.

POST https://graph.microsoft.com/v1.0/chats/19:1c3af46e9e0f4a5293343c8813c47619@thread.v2/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/19:1c3af46e9e0f4a5293343c8813c47619@thread.v2"
    },
    "activityType": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.chatMembersNotificationRecipient",
        "chatId": "19:1c3af46e9e0f4a5293343c8813c47619@thread.v2"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "Task 12322"
        }
    ] 
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content