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:
- Actualice el manifiesto de la aplicación.
- 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.
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 |