Enviar notificações de feed de atividades para usuários no Microsoft Teams

O feed de atividades do Microsoft Teams notifica os usuários de alterações para permitir que eles triagem itens que exigem atenção. As notificações do feed de atividades no Teams incluem os seguintes recursos:

  • Integração nativa com o Teams que traz o usuário perfeitamente para o aplicativo Tab e fornece envolvimento adicional do usuário do painel Atividades do Teams para seu aplicativo.
  • Notificações do sistema operacional na área de trabalho do Teams e clientes móveis que incluem um pop-up e um som.
  • Conteúdo de notificação personalizável que permite mostrar mais ou menos conteúdo de visualização para o usuário.
  • Capacidade de vincular profundamente sua guia, aplicativo pessoal, mensagem bot ou Cartão Adaptável a uma notificação para aumentar o envolvimento do usuário com seu aplicativo.
  • Capacidade de enviar notificações de feed de atividades para vários destinatários, como notificações em lote para um grupo de usuários.

Você pode usar as APIs de notificação do feed de atividades no Microsoft Graph para estender essa funcionalidade aos seus aplicativos. Dessa forma, você pode fornecer experiências mais avançadas e envolver os usuários ajudando-os a manter-se atualizados com as alterações nas ferramentas e fluxos de trabalho que eles usam.

As APIs de notificação do feed de atividades no Microsoft Graph habilitam os seguintes casos de uso:

  • Notícias – Mantenha os usuários atualizados com as informações mais recentes, como novas atribuições ou novas postagens.
  • Colaboração – mostre aos usuários uma visualização na faixa de notificação quando alguém compartilha um arquivo ou @ os menciona em um comentário.
  • Lembretes – Enviar notificações aos usuários sobre eventos ou tarefas.
  • Alertas – Enviar notificações que exigem atenção urgente ou imediata, como uma data de vencimento anterior ou um item de trabalho de alta prioridade.

Você pode usar notificações do feed de atividades para fazer o seguinte:

  • Notifique os indivíduos sobre o conteúdo personalizado que requer sua atenção.
  • Mostrar conteúdo avançado em um aplicativo tab ou URL.
  • Dá suporte a interações complexas do usuário.
  • Envie notificações delegadas do usuário que iniciou uma notificação.

O Teams manipula a localização para notificações.

Componentes de notificações de feed de atividades

As notificações do feed de atividades no Teams são compostas por várias informações exibidas juntas, conforme mostrado na imagem a seguir.

Imagem mostrando os componentes de uma notificação do feed de atividades, incluindo ator, motivo, carimbo de hora, visualização e tópico.

A tabela a seguir descreve os componentes.

Componente Descrição
Avatar Mostra quem iniciou a atividade.
Tipo de atividade ou ícone de aplicativo O tipo de atividade. Para notificações de aplicativo, o ícone de linha é substituído por um ícone de aplicativo.
Título: Ator + motivo Ator é o nome do usuário ou aplicativo que iniciou a atividade. O motivo descreve a atividade.
Carimbo de data/hora Mostra quando a atividade aconteceu.
Visualização de texto Mostra uma linha truncada desde o início da notificação.
Tópico Recurso associado ou o valor de texto do tópico do corpo da solicitação.

A imagem a seguir mostra um exemplo de uma notificação de feed de atividades no Teams. Neste exemplo, um usuário compartilhou uma postagem em um aplicativo.

Uma imagem de uma notificação do feed de atividades do Yammer

Tipos de cartões de notificação do feed de atividades

As guias a seguir mostram os tipos de cartões de notificação do feed de atividades que você pode exibir. Para notificações geradas pelo aplicativo, o logotipo do usuário é substituído pelo logotipo do aplicativo.

Teams personalizado

Captura de tela que mostra notificações do feed de atividades em um computador personalizado do Teams.

Windows

Captura de tela que mostra notificações de feed de atividades em um Windows desktop Teams.

Mac

Captura de tela que mostra notificações de feed de atividades em um Mac desktop Teams.

Requisitos para usar as APIs de notificação do feed de atividades

As APIs do feed de atividades funcionam com um aplicativo do Teams. A seguir estão os requisitos para o envio de notificações de feed de atividades:

  • O manifesto do aplicativo Teams deve ter a ID do aplicativo Microsoft Entra adicionada à webApplicationInfo seção. Para obter mais informações, consulte esquema de manifesto.
  • As notificações de atividade podem ser enviadas com ou sem tipos de atividade declarados no manifesto do aplicativo.
    • Por padrão, você pode usar as APIs de notificação de atividade sem declarar a activities seção no manifesto. O systemDefault tipo de atividade é reservado, permitindo que você forneça texto de forma gratuita na Actor+Reason linha da notificação do feed de atividades. Para obter mais informações, consulte Enviar notificações de feed de atividade personalizável.

      Observação

      O systemDefault tipo de atividade está disponível apenas em versão prévia pública.

    • Se você quiser enviar uma notificação com modelo no modo tradicional, os tipos de atividade devem ser declarados na seção Atividades . Para obter mais informações, consulte Esquema de manifesto.
  • O aplicativo Teams deve ser instalado para o destinatário, pessoalmente ou em uma equipe ou chat do qual eles fazem parte. Para obter mais informações, confira Instalação do aplicativo teams.

Permissões

Você pode usar permissões delegadas ou de aplicativo para enviar notificações de atividade. Quando você usa permissões de aplicativo, recomendamos que você use o RSC (consentimento específico do recurso) porque a TeamsActivity.Send.User permissão permite que o usuário consenta em enviar notificações de atividade. Você deve declarar permissões RSC em seu esquema de manifesto de aplicativo do Teams.

Atualizações de manifesto do aplicativo Teams

Esta seção descreve as alterações que você precisa fazer no manifesto do aplicativo teams para implementar notificações de feed de atividades. Você precisa usar a versão 1.7 do manifesto do aplicativo teams ou maior.

"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
"manifestVersion": "1.7",

Atualização webApplicationInfo

Você deve atualizar Microsoft Entra id e resource informações na propriedade do manifesto webApplicationInfo do aplicativo.

"webApplicationInfo":
{
    "id": "a3111f15-658e-457c-9689-fd20fe907330",
    "resource": "https://contosoapp.com"
}
Parâmetro Tipo Descrição
id string Microsoft Entra (ID do cliente).
recurso string Recurso associado ao aplicativo Azure AD. Ele também é conhecido como um URI de resposta ou redirecionamento na visão geral centro de administração do Microsoft Entra registro do aplicativo.

Observação

Você pode receber um erro se vários aplicativos do Teams no mesmo escopo (equipe, chat ou usuário) usarem o mesmo aplicativo Microsoft Entra. Verifique se você está usando aplicativos Microsoft Entra exclusivos.

Atualização de atividades

Você deve definir a activities propriedade no manifesto do aplicativo para postar um feed de atividades do usuário.

"activities":
{
  "activityTypes": [
    {
      "type": "taskCreated",
      "description": "Task Created Activity",
      "templateText": "{actor} created task {taskId} for you"
    },
    {
      "type": "approvalRequired",
      "description": "Deployment requires your approval",
      "templateText": "{actor} created a new deployment {deploymentId}"
    }
  ]
}
Parâmetro Tipo Descrição
type string O tipo precisa ser exclusivo em um manifesto específico.
description string Descrição curta legível pelo homem. A descrição está visível no cliente do Microsoft Teams.
templateText string Texto do modelo para a notificação de atividade. Você pode declarar seus parâmetros encapsulando parâmetros em colchetes {}encaracolados .

Observação

  • actor é um parâmetro especial que sempre leva o nome do chamador. Em chamadas delegadas, actor é o nome do usuário. Em chamadas somente de aplicativo, ele usa o nome do aplicativo Teams.

  • O tipo de atividade reservada systemDefault não deve ser fornecido na activities seção do manifesto. O tipo de atividade reservada pode fornecer texto de forma gratuita na Actor+Reason linha da notificação do feed de atividades. Para obter mais informações, consulte Enviar notificações de feed de atividade personalizável.

Atualização de autorização

"authorization": 
{ 
  "permissions": { 
    "resourceSpecific": [ 
      {
        "type": "Application", 
         "name": "TeamsActivity.Send.User" 
      }, 
      { 
        "type": "Application",
        "name": "TeamsActivity.Send.Group"
      }, 
      { 
        "type": "Application", 
        "name": "TeamsActivity.Send.Chat" 
      } 
    ] 
  }
} 

Parâmetro Tipo Descrição
type cadeia de caracteres O tipo de permissão RSC (consentimento específico do recurso).
nome string O nome da permissão RSC. Para obter mais informações, confira Permissões RSC com suporte

Instalar o aplicativo Teams

Os aplicativos do Teams podem ser instalados em uma equipe, um chat ou para um usuário pessoalmente e podem ser distribuídos de várias maneiras. Para obter detalhes, confira Métodos de distribuição de aplicativos do Teams. Normalmente, o sideload é preferido para fins de desenvolvimento. Após o desenvolvimento, você pode escolher o método de distribuição correto com base em se deseja distribuir a um locatário ou a todos os locatários.

Você também pode usar APIs de instalação de aplicativo do Teams para gerenciar instalações de aplicativo do Teams.

Enviar notificações de feed de atividades aos usuários

Observação

Para mostrar notificações de feed de atividades em clientes iOS e Android, o aplicativo deve ser incluído na lista de permissões. Há suporte apenas para aplicativos de terceiros.

Como um aplicativo do Teams pode ser instalado para um usuário, em uma equipe ou em um chat, as notificações podem ser enviadas em três contextos. Para obter detalhes sobre como enviar notificações em cada contexto, confira os seguintes tópicos:

Além disso, as notificações podem ser enviadas em massa para até 100 usuários por vez. Para obter detalhes, confira o seguinte tópico:

Para obter detalhes sobre quais tópicos têm suporte para cada cenário, consulte as APIs específicas. Há suporte para tópicos baseados em texto personalizados para todos os cenários.

Observação

O ícone de atividade baseia-se no contexto em que a solicitação é feita. Se a solicitação for feita com permissões delegadas, a foto do usuário será exibida como o avatar, enquanto o ícone do aplicativo teams será exibido como o ícone de atividade. Em um contexto somente aplicativo, o ícone do aplicativo teams é usado como avatar e o ícone de atividade é omitido.

Exemplo 1: notificar um usuário sobre uma tarefa criada em um chat

O exemplo a seguir mostra como você pode enviar uma notificação de feed de atividades para uma nova tarefa criada em um chat. Nesse caso, o aplicativo teams deve ser instalado em um chat com id chatId e o usuário 569363e2-4e49-4661-87f2-16f245c5d66a também deve fazer parte do chat.

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

Resposta

HTTP/1.1 204 No Content

Exemplo 2: notificar um usuário sobre uma tarefa criada em uma equipe

O exemplo a seguir mostra como você pode enviar uma notificação de feed de atividades para uma equipe. Este exemplo notifica o proprietário da equipe sobre uma nova tarefa criada que requer sua atenção.

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": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "12322"
        }
    ]
}

Resposta

HTTP/1.1 204 No Content

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

Como os exemplos anteriores mostram, você pode vincular a diferentes aspectos de equipe ou chat. No entanto, se você quiser vincular a um aspecto que não faz parte da equipe ou o Microsoft Graph não o representa ou se quiser personalizar o nome, poderá definir a origem do topic para text e passar um valor personalizado para ele. Além disso, webUrl é necessário quando você usa topic a origem como text.

O exemplo de notificação do Yammer mostrado anteriormente usa um tópico personalizado porque o Microsoft Graph não dá suporte aos recursos do Yammer.

Observação

webUrl deve começar com o domínio do Microsoft Teams (teams.microsoft.com, por exemplo).

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": "approvalRequired",
    "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 4: notificar os membros da equipe sobre um evento

O exemplo a seguir mostra como você pode enviar uma notificação do feed de atividades para todos os membros da equipe. Este exemplo notifica os membros da equipe sobre um novo evento.

Solicitação

POST https://graph.microsoft.com/v1.0/teams/7155e3c8-175e-4311-97ef-572edc3aa3db/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "text",
        "value": "Weekly Virtual Social",
        "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"
    },
    "previewText": {
        "content": "It will be fun!"
    },
    "activityType": "eventCreated",
    "recipient": {
        "@odata.type": "microsoft.graph.teamMembersNotificationRecipient",
        "teamId": "7155e3c8-175e-4311-97ef-572edc3aa3db"
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 5: notificar os membros do canal sobre um evento

O exemplo a seguir mostra como você pode enviar uma notificação do feed de atividades para todos os membros do canal. Este exemplo notifica os membros do canal sobre um novo evento.

Solicitação

POST https://graph.microsoft.com/v1.0/teams/7155e3c8-175e-4311-97ef-572edc3aa3db/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "text",
        "value": "Weekly Virtual Social",
        "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"
    },
    "previewText": {
        "content": "It will be fun!"
    },
    "activityType": "eventCreated",
    "recipient": {
        "@odata.type": "microsoft.graph.channelMembersNotificationRecipient",
        "teamId": "7155e3c8-175e-4311-97ef-572edc3aa3db",
        "channelId": "19:0ea5de04de4743bcb4cd20cb99235d99@thread.tacv2"
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 6: notificar os membros do chat sobre um evento

O exemplo a seguir mostra como você pode enviar uma notificação do feed de atividades para todos os membros do chat. Este exemplo notifica os membros do chat sobre um novo evento.

Solicitação

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

{
    "topic": {
        "source": "text",
        "value": "Weekly Virtual Social",
        "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"
    },
    "previewText": {
        "content": "It will be fun!"
    },
    "activityType": "eventCreated",
    "recipient": {
        "@odata.type": "microsoft.graph.chatMembersNotificationRecipient",
        "chatId": "19:d65713bc498c4a428c71ef9353e6ce20@thread.v2"
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 7: notificar vários usuários sobre solicitações de aprovação de financiamento pendentes

O exemplo a seguir mostra como enviar uma notificação de feed de atividades para vários usuários em massa. Este exemplo notifica vários stakeholders sobre solicitações de aprovação de financiamento pendentes.

Solicitação

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

Resposta

HTTP/1.1 202 Accepted

Exemplo 8: Enviar uma notificação a um usuário usando o tipo de atividade systemDefault

O exemplo a seguir mostra como você pode enviar uma notificação de atividade para uma equipe sem tipos de atividade definidos no manifesto. Você tem a flexibilidade de fornecer texto de formulário livre aqui. Para obter mais informações, confira Tipos de atividade reservados.

Observação

O systemDefault tipo de atividade está disponível apenas em versão prévia pública.

Este exemplo notifica o proprietário da equipe a fazer uma breve pausa. Modifique o value em templateParameters para personalizar a notificação para vários cenários.

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": "systemDefault",
    "previewText": {
        "content": "Take a break"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "systemDefaultText",
            "value": "You need to take a short break"
        }
    ]
}

Resposta

HTTP/1.1 204 No Content

Tipos de atividade reservados

O systemDefault tipo de atividade é reservado e não pode ser usado no manifesto ao declarar Atividades. Você pode usar o systemDefault tipo de atividade para:

  • Teste facilmente novos cenários e/ou tente rapidamente as APIs de notificação do feed de atividades sem definir tipos de atividade no manifesto do aplicativo.
  • Para aplicativos store, economize tempo e agilize o processo porque você não precisa ajustar constantemente os tipos de atividade no manifesto do aplicativo. O systemDefault tipo de atividade está pronto para usar desde o get-go.

Tenha em mente que, com o systemDefault tipo de atividade, você não pode:

  • Utilize os recursos de localização internos fornecidos por manifestos.
  • Conte com o envio de notificações personalizáveis com o systemDefault tipo de atividade. Os usuários podem desativar todas as notificações do seu aplicativo com um alternância nas configurações do cliente do Microsoft Teams, o que pode dificultar a comunicação entre seu aplicativo e seus usuários.

Ainda recomendamos notificações de modelo para lotes recorrentes e grandes de notificações porque elas exigem modelos de atividade no manifesto.

O systemDefault tipo de atividade reservada permanece disponível, independentemente dos tipos de atividade listados no manifesto do aplicativo.

Personalizar como as notificações alertam você

Os usuários do Microsoft Teams podem personalizar as notificações que veem no feed, como um banner e assim por diante. As notificações geradas por meio de APIs de feed de atividades também podem ser personalizadas. Os usuários podem escolher como são notificados por meio de configurações no Microsoft Teams. Os aplicativos do Teams aparecem na lista para o usuário escolher, conforme mostrado na captura de tela a seguir.

Captura de tela das configurações de Notificações no Teams, com a opção Personalizada realçada

Os usuários podem escolher Editar ao lado de um aplicativo e personalizar as notificações, conforme mostrado no exemplo a seguir. O description campo no manifesto do aplicativo teams é exibido.

Captura de tela mostrando notificações personalizadas para Banner e feed para um aplicativo do Teams

Perguntas Frequentes

Quem precisa instalar o aplicativo teams?

O usuário de destino deve ter o aplicativo Teams que está enviando notificações instalado.

Um usuário pode enviar notificações para si mesmo?

Não, um usuário não pode enviar notificações para si mesmo. Para esse cenário, use permissões de aplicativo.

Um aplicativo do Teams pode controlar como as notificações são mostradas ao usuário?

Não, somente os usuários podem alterar as configurações de notificação.

Instalei meu aplicativo; por que não vejo configurações de notificação na conta de usuário?

As configurações aparecem depois que o aplicativo Teams envia a primeira notificação. Isso reduz o número de configurações que os usuários veem.

Comecei a receber um erro 409 (conflito). Como faço para resolve isso?

Conflictos erros ocorrem principalmente quando vários aplicativos do Teams instalados no mesmo escopo (equipe, chat, usuário e assim por diante) têm o mesmo Microsoft Entra appId na webApplicationInfo seção do manifesto. Quando isso acontece, você recebe um erro como Found multiple applications with the same Microsoft Entra App ID 'Your Microsoft Entra AppId'.. Certifique-se de usar aplicativos Microsoft Entra exclusivos para aplicativos exclusivos do Teams. Você pode instalar o mesmo aplicativo do Teams em vários escopos (equipe + usuário, por exemplo).