Compartir a través de


Compilación de aplicaciones para usuarios anónimos

Los usuarios anónimos no tienen una identidad de Microsoft Entra y no están federados con un inquilino. Los participantes anónimos son usuarios externos, pero su identidad no se muestra en la reunión. Un usuario anónimo puede ser moderador o asistente, pero no puede ser organizador. Puede crear bots, extensiones de mensajería, tarjetas y diálogos (denominados módulos de tareas en TeamsJS v1.x) en la aplicación para interactuar con participantes anónimos en la reunión.

Nota:

  • Las aplicaciones para usuarios anónimos se admiten en los nuevos clientes móviles y de escritorio de Teams para Windows y Mac.
  • Las aplicaciones de reunión para usuarios anónimos solo se admiten en Microsoft Edge y Chrome.

Para que los usuarios anónimos interactúen con las aplicaciones en las reuniones de Teams, asegúrese de:

  1. Actualice el manifiesto de la aplicación.
  2. Habilite la interacción de la aplicación de usuario anónimo en el Centro de administración de Teams.

Actualización del manifiesto de aplicación para usuarios anónimos

Nota:

La supportsAnonymousGuestUsers propiedad del esquema de manifiesto de aplicación v1.16 solo se admite en el nuevo cliente de Teams.

Para permitir que los usuarios anónimos interactúen con la aplicación de pestaña, actualice la propiedad a true en el supportsAnonymousGuestUsers esquema de manifiesto de la aplicación v1.16 o posterior. A continuación se muestra un ejemplo del manifiesto:

"meetingExtensionDefinition": {
    "supportsAnonymousGuestUsers": true
}

Para obtener más información, consulte esquema de manifiesto de aplicación.

Flujo de autenticación de usuario anónimo

Los usuarios anónimos no se pueden autenticar mediante la autenticación de Microsoft Entra ni getAuthToken desde el SDK de cliente, ya que no son cuentas de Microsoft Entra. getAuthToken produce un error para los usuarios anónimos devolviendo el error useGetAuthToken: Failed with error - User is not authenticated. Si necesita autenticar usuarios anónimos, la aplicación debe identificar usuarios anónimos y proporcionar una experiencia de autenticación alternativa en las reuniones. Puede determinar si un usuario es anónimo mediante la validación del contexto del usuario.

Configuración de administrador para la interacción anónima de la aplicación de usuario

Los administradores de Teams pueden usar el Centro de administración de Teams para habilitar o deshabilitar la interacción anónima de aplicaciones de usuario para todo el inquilino. Si los usuarios anónimos necesitan acceder a la aplicación, asegúrese de que los administradores de inquilinos habiliten la interacción de la aplicación de usuario anónimo. Esta opción está habilitada de manera predeterminada. Para obtener más información, consulte Permitir que los usuarios anónimos interactúen con aplicaciones en reuniones.

Para probar la experiencia de las aplicaciones para usuarios anónimos, seleccione la dirección URL de la invitación a la reunión y únase a ella desde una ventana del explorador privado.

In-Meeting getContext de la biblioteca cliente de Teams

Las aplicaciones reciben la siguiente información para un usuario anónimo cuando llaman a la getContext API desde la fase de aplicación compartida. Puede reconocer usuarios anónimos comprobando si hay un 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
    }
});
Nombre de propiedad Descripción
userObjectId Cadena vacía para el usuario anónimo.
userLicenseType Anonymous representa al usuario anónimo.
loginHint Cadena vacía para el usuario anónimo.
userPrincipalName Cadena vacía para el usuario anónimo.

Para obtener más información sobre getContext, vea Obtener contexto mediante la biblioteca JavaScript de Microsoft Teams.

Api y actividades de bot

Con algunas diferencias, las actividades enviadas al bot y las respuestas que recibe de las API del bot son coherentes entre los participantes anónimos y no anónimos de la reunión.

Obtener miembros y obtener API de miembro único

Los miembros get y get single member API devuelven información limitada para los usuarios anónimos:

{ 
  "id": "<GUID1>", 
  "name": "<AnonTest (Guest)>",  
  "tenantId": "<GUID2>", 
  "userRole": "anonymous" 
}
Nombre de propiedad Descripción
id Valor único generado para el usuario anónimo.
name Nombre proporcionado por el usuario anónimo al unirse a la reunión.
tenantId Identificador de inquilino del organizador de la reunión.
userRole anonymous representa al usuario anónimo.

Miembros de la actividad ConversationUpdateAgregar y MiembrosRemoved

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

Nota:

Cuando un usuario anónimo se une a una reunión o sale de ella, el from objeto de la carga siempre tiene el identificador del organizador de la reunión, incluso si otra persona realizó la acción.

Creación de Conversation API

Los bots no pueden iniciar una conversación uno a uno con un usuario anónimo. Si un bot llama a Create Conversation API con el identificador de usuario de un usuario anónimo, recibe un 400 código de estado de solicitud incorrecta y la siguiente respuesta de error:

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

Tarjetas adaptables

Los usuarios anónimos pueden ver e interactuar con tarjetas adaptables en el chat de reunión. Las acciones de tarjeta adaptable se comportan de la misma manera para los usuarios anónimos y no anónimos. Para obtener más información, vea Acciones de tarjeta.

Problemas y limitaciones conocidos

  • Las aplicaciones para usuarios anónimos no se admiten en eventos en directo, infraestructura de escritorio virtual (VDI) y plataformas Linux.

  • Las aplicaciones para usuarios anónimos no se admiten en los exploradores Firefox y Safari.

  • Las aplicaciones para usuarios anónimos no se admiten en las reuniones del canal de Teams.

  • La getContext API no devuelve un identificador de usuario para el usuario anónimo, aunque sí lo hacen las API del bot y no es posible correlacionar el usuario anónimo entre estas dos API.

  • Los usuarios anónimos ven un icono de aplicación genérica en los mensajes y tarjetas del bot, en lugar del icono real de la aplicación.

    Captura de pantalla que muestra cómo se muestra el icono de aplicación para el usuario anónimo.

Ejemplo de código

Ejemplo de nombre Descripción .NET Node.js
Compatibilidad con usuarios anónimos Aplicación de ejemplo para mostrar compatibilidad con usuarios anónimos en aplicaciones de reuniones. View View

Paso siguiente

Vea también