Criar aplicativos para usuários anônimos
Usuários anônimos não têm uma identidade Microsoft Entra e não são federados com um locatário. Os participantes anônimos são usuários externos, mas sua identidade não é mostrada na reunião. Um usuário anônimo pode ser um apresentador ou um participante, mas não pode ser um organizador. Você pode criar bots, extensões de mensagens, cartões e caixas de diálogo (conhecidos como módulos de tarefa no TeamsJS v1.x) em seu aplicativo para se envolver com participantes anônimos da reunião.
Observação
- Há suporte para aplicativos para usuários anônimos na nova área de trabalho do Teams e clientes móveis para Windows e Mac.
- Aplicativos de reunião para usuários anônimos só têm suporte no Microsoft Edge e no Chrome.
Para que usuários anônimos interajam com os aplicativos em reuniões do Teams, certifique-se de:
- Atualize o manifesto do aplicativo.
- Habilite a interação anônima do aplicativo de usuário no centro de administração do Teams.
Atualização de manifesto de aplicativo para usuários anônimos
Observação
A supportsAnonymousGuestUsers
propriedade no esquema de manifesto do aplicativo v1.16 tem suporte apenas no novo cliente do Teams.
Para permitir que usuários anônimos interajam com o aplicativo de guia, atualize a supportsAnonymousGuestUsers
propriedade para true
no esquema de manifesto do aplicativo v1.16 ou posterior. A seguir está um exemplo do manifesto:
"meetingExtensionDefinition": {
"supportsAnonymousGuestUsers": true
}
Para obter mais informações, consulte esquema de manifesto do aplicativo.
Fluxo de autenticação de usuário anônimo
Os usuários anônimos não podem ser autenticados por meio da autenticação Microsoft Entra ou getAuthToken
do SDK do cliente, pois não são Microsoft Entra contas. getAuthToken
falha para usuários anônimos retornando o erro useGetAuthToken: Failed with error - User is not authenticated
. Se você precisar autenticar usuários anônimos, seu aplicativo deve identificar usuários anônimos e fornecer uma experiência de autenticação alternativa nas reuniões. Você pode determinar se um usuário é anônimo validando o contexto do usuário.
Administração configuração para interação anônima do aplicativo de usuário
Os administradores do Teams podem usar o centro de administração do Teams para habilitar ou desabilitar a interação anônima do aplicativo de usuário para todo o locatário. Se seu aplicativo precisar ser acessado por usuários anônimos, verifique se os administradores do locatário habilitam a interação anônima do aplicativo de usuário. Essa configuração é habilitada por padrão. Para obter mais informações, confira permitir que usuários anônimos interajam com aplicativos em reuniões.
Para testar sua experiência de aplicativos para usuários anônimos, selecione a URL no convite da reunião e participe da reunião em uma janela do navegador privado.
In-Meeting getContext da biblioteca de clientes do Teams
Os aplicativos recebem as seguintes informações para um usuário anônimo quando eles chamam a getContext
API do estágio de aplicativo compartilhado. Você pode reconhecer usuários anônimos verificando 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 de caracteres vazia para usuário anônimo. |
userLicenseType |
Anonymous representa um usuário anônimo. |
loginHint |
Cadeia de caracteres vazia para usuário anônimo. |
userPrincipalName |
Cadeia de caracteres vazia para usuário anônimo. |
Para obter mais informações sobre getContext
, confira obter contexto usando a biblioteca JavaScript do Microsoft Teams.
Atividades de bot e APIs
Com algumas diferenças, as atividades enviadas ao bot e as respostas que ele recebe das APIs do bot são consistentes entre participantes anônimos e não anônimos da reunião.
Obter membros e obter APIs de membro único
Os membros get e obter APIs de membro único retornam informações limitadas para usuários anônimos:
{
"id": "<GUID1>",
"name": "<AnonTest (Guest)>",
"tenantId": "<GUID2>",
"userRole": "anonymous"
}
Nome da propriedade | Descrição |
---|---|
id |
Valor gerado exclusivo para o usuário anônimo. |
name |
Nome fornecido pelo usuário anônimo ao ingressar na reunião. |
tenantId |
ID do locatário do organizador da reunião. |
userRole |
anonymous , representa o usuário anônimo. |
Atividade ConversationUpdate 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 usuário anônimo entra ou sai de uma reunião, o from
objeto na carga sempre tem a ID do organizador da reunião, mesmo que a ação tenha sido tomada por outra pessoa.
Criar API de Conversa
Os bots não têm permissão para iniciar uma conversa individual com um usuário anônimo. Se um bot chamar a API Criar Conversa com a ID do usuário de um usuário anônimo, ele receberá uma 400
Solicitação Incorreta status código 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
Usuários anônimos podem exibir e interagir com Cartões Adaptáveis no chat da reunião. As ações de Cartão Adaptável se comportam da mesma maneira para usuários anônimos e não anônimos. Para obter mais informações, confira Ações de cartão.
Limitações e problemas conhecidos
Aplicativos para usuários anônimos não têm suporte em eventos ao vivo, VDI (infraestrutura de área de trabalho virtual) e plataformas Linux.
Não há suporte para aplicativos para usuários anônimos nos navegadores Firefox e Safari.
Aplicativos para usuários anônimos não têm suporte em reuniões do canal do Teams.
Atualmente, a
getContext
API não retorna uma ID de usuário para o usuário anônimo, embora as APIs do bot façam e não é possível correlacionar o usuário anônimo entre essas duas APIs.Usuários anônimos veem um ícone de aplicativo genérico em mensagens de bot e cartões, em vez do ícone real do aplicativo.
Exemplo de código
Nome do exemplo | Descrição | .NET | Node.js |
---|---|---|---|
Suporte anônimo ao usuário | Aplicativo de exemplo para mostrar o suporte anônimo do usuário em aplicativos de reunião. | View | View |
Próxima etapa
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de