Compartilhar via


Criar aplicações para utilizadores anónimos

Os utilizadores anónimos não têm uma identidade do Microsoft Entra e não estão federados com um inquilino. Os participantes anónimos são utilizadores externos, mas a respetiva identidade não é apresentada na reunião. Um utilizador anónimo pode ser um apresentador ou participante, mas não pode ser um organizador. Pode criar bots, extensões de mensagens, cartões e caixas de diálogo (referidos como módulos de tarefas no TeamsJS v1.x) na sua aplicação para interagir com participantes anónimos da reunião.

Observação

  • As aplicações para utilizadores anónimos são suportadas nos novos clientes móveis e de ambiente de trabalho do Teams para Windows e Mac.
  • As aplicações de reunião para utilizadores anónimos só são suportadas no Microsoft Edge e no Chrome.

Para que os utilizadores anónimos interajam com as aplicações em reuniões do Teams, certifique-se de que:

  1. Atualize o manifesto da aplicação.
  2. Ative a interação da aplicação de utilizador anónimo no centro de administração do Teams.

Atualização do manifesto de aplicação para utilizadores anónimos

Observação

A supportsAnonymousGuestUsers propriedade no esquema de manifesto da aplicação v1.16 é suportada apenas no novo cliente do Teams.

Para permitir que os utilizadores anónimos interajam com a aplicação de separador, atualize a supportsAnonymousGuestUsers propriedade para true no esquema de manifesto da aplicação v1.16 ou posterior. Segue-se um exemplo do manifesto:

"meetingExtensionDefinition": {
    "supportsAnonymousGuestUsers": true
}

Para obter mais informações, veja esquema de manifesto de aplicação.

Fluxo de autenticação de utilizador anónimo

Os utilizadores anónimos não podem ser autenticados através da autenticação Microsoft Entra ou getAuthToken do SDK do cliente, uma vez que não são contas do Microsoft Entra. getAuthToken falha para utilizadores anónimos ao devolver o erro useGetAuthToken: Failed with error - User is not authenticated. Se precisar de autenticar utilizadores anónimos, a sua aplicação tem de identificar utilizadores anónimos e fornecer uma experiência de autenticação alternativa nas reuniões. Pode determinar se um utilizador é anónimo ao validar o contexto do utilizador.

Definição de administrador para interação da aplicação de utilizador anónimo

Os administradores do Teams podem utilizar o centro de administração do Teams para ativar ou desativar a interação da aplicação de utilizador anónimo para todo o inquilino. Se os utilizadores anónimos precisarem de aceder à sua aplicação, certifique-se de que os administradores de inquilinos ativam a interação da aplicação de utilizador anónimo. Essa configuração é habilitada por padrão. Para obter mais informações, consulte Permitir que utilizadores anónimos interajam com aplicações em reuniões.

Para testar a experiência das aplicações para utilizadores anónimos, selecione o URL no convite da reunião e participe na reunião a partir de uma janela privada do browser.

In-Meeting getContext da biblioteca de cliente do Teams

As aplicações recebem as seguintes informações para um utilizador anónimo quando chamam a API a getContext partir da fase da aplicação partilhada. Pode reconhecer utilizadores anónimos ao verificar se há um userLicenseType valor de Anonymous.

import * as microsoftTeams from "@microsoft/teams-js";

microsoftTeams.app.getContext().then((context) => {
    if (context.user.licenseType === "Anonymous") {
        // Add your custom logic here
    }
});
Nome da propriedade Descrição
userObjectId Cadeia vazia para utilizador anónimo.
userLicenseType Anonymous representa o utilizador anónimo.
loginHint Cadeia vazia para utilizador anónimo.
userPrincipalName Cadeia vazia para utilizador anónimo.

Para obter mais informações sobre getContexto , consulte Obter contexto com a biblioteca JavaScript do Microsoft Teams.

Atividades e APIs do bot

Com algumas diferenças, as atividades enviadas para o bot e as respostas que recebe das APIs do bot são consistentes entre participantes anónimos e não anónimos na reunião.

Obter membros e obter APIs de membro único

As APIs get get e get single member devolvem informações limitadas para utilizadores anónimos:

{ 
  "id": "<GUID1>", 
  "name": "<AnonTest (Guest)>",  
  "tenantId": "<GUID2>", 
  "userRole": "anonymous" 
}
Nome da propriedade Descrição
id Valor gerado exclusivo para o utilizador anónimo.
name Nome fornecido pelo utilizador anónimo ao participar na reunião.
tenantId ID do inquilino do organizador da reunião.
userRole anonymous representa o utilizador anónimo.

ConversationUpdate activity MembersAdded and MembersRemoved

MembersAdded

protected override async Task OnTeamsMembersAddedAsync(IList<TeamsChannelAccount> membersAdded, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
  {
     foreach (var teamMember in membersAdded)
     {
         // If UserRole == "anonymous", it indicates an anonymous user
         if (teamMember.UserRole == "anonymous" )
          {
             // Add your custom logic here
          }
          else
          {
           // Add your custom logic here
          }
     }
  }

MembersRemoved

protected override async Task OnTeamsMembersRemovedAsync(IList<TeamsChannelAccount> membersRemoved, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
   foreach (var member in membersRemoved)
   {
      // If AadObjectId is null, it indicates an anonymous user
       if (member.AadObjectId == null)
       {
           // Add your custom logic here
       }
       else
       {
           // Add your custom logic here
       }
   }

Observação

Quando um utilizador anónimo entra ou sai de uma reunião, o from objeto no payload tem sempre o ID do organizador da reunião, mesmo que a ação tenha sido tomada por outra pessoa.

Criar API de Conversação

Os bots não podem iniciar uma conversação um-para-um com um utilizador anónimo. Se um bot chamar a API Criar Conversação com o ID de utilizador de um utilizador anónimo, recebe um 400 código de estado Pedido Incorreto e a seguinte resposta de erro:

var conversationParameters = new ConversationParameters
    {
       IsGroup = false,
       Bot = turnContext.Activity.Recipient,
       Members = new ChannelAccount[] { teamMember },
       TenantId = turnContext.Activity.Conversation.TenantId,
    };
    
    await ((CloudAdapter)turnContext.Adapter).CreateConversationAsync(
    conversationParameters,
    async (t1, c1) =>
    {
       conversationReference = t1.Activity.GetConversationReference();
       await ((CloudAdapter)turnContext.Adapter).ContinueConversationAsync(
       _appId,
       conversationReference,
       async (t2, c2) =>
       {
         await t2.SendActivityAsync(proactiveMessage, c2);
        },
        cancellationToken);
    },
cancellationToken);
{ 
  "error": {
    "code": "BadArgument",
    "message": "Bot cannot create a conversation with an anonymous user"
  }
} 

Cartões Adaptáveis

Os utilizadores anónimos podem ver e interagir com Cartões Ajustáveis na conversa da reunião. As ações do Cartão Adaptável comportam-se da mesma forma para utilizadores anónimos e não anónimos. Para obter mais informações, veja Ações de cartões.

Limitações e problemas conhecidos

  • As aplicações para utilizadores anónimos não são suportadas em eventos em direto, infraestrutura de ambiente de trabalho virtual (VDI) e plataformas Linux.

  • As aplicações para utilizadores anónimos não são suportadas nos browsers Firefox e Safari.

  • As aplicações para utilizadores anónimos não são suportadas em reuniões de canal do Teams.

  • A getContext API não devolve um ID de utilizador para o utilizador anónimo, embora as APIs do bot o façam e não é possível correlacionar o utilizador anónimo entre estas duas APIs.

  • Os utilizadores anónimos veem um ícone genérico da aplicação em mensagens e cartões de bot, em vez do ícone real da aplicação.

    Captura de ecrã a mostrar como o ícone da aplicação é apresentado para um utilizador anónimo.

Exemplo de código

Nome do exemplo Descrição .NET Node.js
Suporte de utilizador anónimo Aplicação de exemplo para mostrar suporte de utilizador anónimo em aplicações de reunião. View View

Próxima etapa

Confira também