team: sendActivityNotification

Namespace: microsoft.graph

Envie uma notificação de feed de atividades no escopo de uma equipe. Para obter mais informações sobre o envio de notificações e os requisitos para isso, confira enviando notificações de atividade do Teams.

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões privilegiadas mais altas
Delegado (conta corporativa ou de estudante) TeamsActivity.Send Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application TeamsActivity.Send.Group TeamsActivity.Send

Observação

A permissão TeamsActivity.Send.Group usa o consentimento específico do recurso.

Solicitação HTTP

POST /teams/{teamId}/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á sendo falado.
activityType Cadeia de caracteres O tipo de atividade. Os tipos de atividade devem ser declarados no manifesto do aplicativo teams.
chainId Int64 Opcional. A ID da cadeia para a notificação. Usado para substituir uma notificação anterior. Use o mesmo chainId em solicitações subsequentes para substituir a notificação anterior.
previewText itemBody O texto de visualização da notificação. O Microsoft Teams mostra os primeiros 150 caracteres.
Templateparameters Coleção keyValuePair Os valores das variáveis de modelo definidas na entrada do feed de atividade correspondente ao activityType no manifesto do aplicativo teams.
destinatário teamworkNotificationRecipient O destinatário da notificação. Para obter mais informações, consulte aadUserNotificationRecipient, channelMembersNotificationRecipient e teamMembersNotificationRecipient.
teamsAppId String Opcional. A ID do aplicativo Teams do aplicativo Teams associada à notificação. Usado para desambiguar aplicativos instalados quando vários aplicativos com o mesmo Microsoft Entra ID ID do aplicativo são instalados para o mesmo usuário destinatário. Evite compartilhar Microsoft Entra ID IDs de aplicativo entre aplicativos do Teams.

Os recursos a seguir têm suporte ao definir o source valor da propriedade do tópico como entityUrl:

Nota: A URL da entidade deve ser o mesmo ou recurso filho da equipe na URL. Além disso, o aplicativo Teams deve ser instalado na equipe.

Resposta

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

Exemplos

Exemplo 1: notificar um usuário sobre solicitações de aprovação de financiamento pendentes

Este exemplo mostra como você pode enviar uma notificação de feed de atividades para uma equipe. Este exemplo notifica o proprietário da equipe sobre solicitações de aprovação de financiamento pendentes.

Solicitação

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

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/{teamId}"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Resposta

HTTP/1.1 204 No Content

Exemplo 2: notificar um usuário sobre uma guia de canal

Semelhante ao exemplo anterior, este exemplo usa entityUrl para o topic. No entanto, este exemplo é vinculado a uma guia em um canal. A guia hospeda uma página mostrando ao usuário o status de sua reserva de hotel. A seleção da notificação leva o usuário para a guia, na qual ele pode marcar sua reserva.

Solicitação

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

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}/tabs/{tabId}"
    },
    "activityType": "reservationUpdated",
    "previewText": {
        "content": "You have moved up the queue"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "reservationId",
            "value": "TREEE433"
        },
        {
            "name": "currentSlot",
            "value": "23"
        }
    ]
}

Resposta

HTTP/1.1 204 No Content

Exemplo 3: notificar um usuário sobre uma guia de canal usando o nome da entidade de usuário

Semelhante ao exemplo anterior, este exemplo usa entityUrl para o topic. No entanto, este exemplo é vinculado a uma guia em um canal. A guia hospeda uma página mostrando ao usuário o status de sua reserva de hotel. A seleção da notificação leva o usuário para a guia, na qual ele pode marcar sua reserva.

Solicitação

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

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}/tabs/{tabId}"
    },
    "activityType": "reservationUpdated",
    "previewText": {
        "content": "You have moved up the queue"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "reservationId",
            "value": "TREEE433"
        },
        {
            "name": "currentSlot",
            "value": "23"
        }
    ]
}

Resposta

HTTP/1.1 204 No Content

Exemplo 4: notificar um usuário sobre um evento usando tópico personalizado

Como visto nos exemplos anteriores, você pode vincular a diferentes aspectos da equipe. No entanto, se você quiser vincular a um aspecto que não faz parte da equipe ou não for representado pelo Microsoft Graph ou quiser personalizar o nome, poderá definir a origem do topic para text e passar um valor personalizado para ele. webUrl é necessário ao definir topic a origem como text.

Solicitação

POST https://graph.microsoft.com/v1.0/teams/{teamId}/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

HTTP/1.1 204 No Content

Exemplo 5: notificar os membros da equipe sobre solicitações de aprovação de financiamento pendentes

O exemplo a seguir mostra como você pode enviar uma notificação do feed de atividades para todos os membros da equipe. Este exemplo é semelhante aos exemplos anteriores. No entanto, nesse caso, o destinatário é um teamMembersNotificationRecipient. O teamId especificado no destinatário deve corresponder à teamId especificada na URL de solicitação.

Nota: A capacidade de enviar notificações a todos os membros da equipe é limitada a equipes com 10.000 membros ou menos. Se a equipe exceder 10.000 membros, nenhum dos membros da equipe receberá uma notificação.

Solicitação

O exemplo a seguir mostra a solicitação.

POST https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.teamMembersNotificationRecipient",
        "teamId": "e8bece96-d393-4b9b-b8da-69cedef1a7e7"
    },
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 6: notificar os membros do canal sobre solicitações de aprovação de financiamento pendentes

O exemplo a seguir mostra como você pode enviar uma notificação do feed de atividades para todos os membros do canal. Este exemplo é semelhante ao exemplo anterior. No entanto, nesse caso, o destinatário é um canalMembersNotificationRecipient. O teamId especificado no destinatário deve corresponder à teamId especificada na URL de solicitação.

Solicitação

O exemplo a seguir mostra a solicitação.

POST https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.channelMembersNotificationRecipient",
        "teamId": "e8bece96-d393-4b9b-b8da-69cedef1a7e7",
        "channelId": "19:3d61a2309f094f4a9310b20f1db37520@thread.tacv2"
    },
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content

Exemplo 7: Notificar sobre solicitações de aprovação de financiamento pendentes no local de resposta de mensagem de canal

Semelhante ao exemplo anterior, este exemplo usa entityUrl para o topic. No entanto, este exemplo é vinculado a uma resposta de mensagem de canal. A resposta da mensagem do canal mostra o status da reserva de hotel do usuário. A seleção da notificação leva o usuário à mensagem de resposta no canal, onde ele pode marcar status de reserva.

Solicitação

O exemplo a seguir mostra a solicitação.

POST https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/beta/teams/{teamId}/channels/{channelId}/messages/{messageId}/replies/{replyId}"
    },
    "activityType": "reservationStatusUpdated",
    "previewText": {
        "content": "You have moved up the queue"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "reservationId",
            "value": "TREEE433"
        },
        {
            "name": "currentSlot",
            "value": "23"
        }
    ]
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content