Obtención del contexto específico de Teams para un bot
Importante
Los ejemplos de código de esta sección se basan en la versión 4.6 y versiones posteriores del SDK de Bot Framework. Si busca documentación para versiones anteriores, consulte la sección bots - v3 SDK en la carpeta SDK heredados de la documentación.
Un bot puede acceder a datos de contexto adicionales sobre un equipo o el chat donde está instalado. Esta información se puede usar para enriquecer la funcionalidad del bot y proporcionar una experiencia más personalizada.
Captura de la lista o el perfil del usuario
El bot puede consultar la lista de miembros y sus perfiles de usuario básicos, incluidos los identificadores de usuario de Teams y Microsoft Entra información, como nombre y objectId. Puede usar esta información para correlacionar las identidades de usuario. Por ejemplo, para comprobar si un usuario ha iniciado sesión en una pestaña a través de Microsoft Entra credenciales es miembro del equipo. Para obtener miembros de la conversación, el tamaño mínimo o máximo de la página depende de la implementación. El tamaño de página menor que 50, se trata como 50 y mayor que 500, se limita a 500. Incluso si usa la versión no paginada, no es confiable en equipos grandes y no se debe usar. Para obtener más información, consulte cambios en las API del bot de Teams para capturar miembros del equipo o del chat.
Nota:
- La paginación está disponible en un equipo y un canal.
- La paginación no se admite en los chats. En el caso de los chats, siempre se devuelve toda la lista.
El código de ejemplo siguiente usa el punto de conexión paginado para capturar la lista:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
var members = new List<TeamsChannelAccount>();
string continuationToken = null;
do
{
// Gets a paginated list of members of one-on-one, group, or team conversation.
var currentPage = await TeamsInfo.GetPagedMembersAsync(turnContext, 100, continuationToken, cancellationToken);
continuationToken = currentPage.ContinuationToken;
members.AddRange(currentPage.Members);
}
while (continuationToken != null);
}
}
Después de capturar la lista o el perfil de usuario, puede obtener detalles de un único miembro. Actualmente, para recuperar información de uno o varios miembros de un chat o equipo, use las API TeamsInfo.GetMembersAsync
del bot de Microsoft Teams para C# o TeamsInfo.getMembers
para las API de TypeScript.
Obtener detalles de un miembro
También puede recuperar los detalles de un usuario determinado mediante su id. de usuario, UPN o Microsoft Entra id. de objeto de Teams.
El siguiente código de ejemplo se usa para obtener detalles de un solo miembro:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Gets the account of a single conversation member.
// This works in one-on-one, group, and team scoped conversations.
var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
}
}
Después de obtener los detalles de un solo miembro, puede obtener los detalles del equipo. Actualmente, para recuperar información de un equipo, use las API de bot de Teams TeamsInfo.GetMemberDetailsAsync
para C# o TeamsInfo.getTeamDetails
para TypeScript.
Obtener los detalles del equipo
Cuando se instala en un equipo, el bot puede consultar metadatos sobre ese equipo, incluido el identificador de grupo de Microsoft Entra.
El siguiente código de ejemplo se usa para obtener los detalles del equipo:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Gets the details for the given team id. This only works in team scoped conversations.
// TeamsGetTeamInfo: Gets the TeamsInfo object from the current activity.
TeamDetails teamDetails = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
if (teamDetails != null) {
await turnContext.SendActivityAsync($"The groupId is: {teamDetails.AadGroupId}");
}
else {
// Sends a message activity to the sender of the incoming activity.
await turnContext.SendActivityAsync($"Message did not come from a channel in a team.");
}
}
}
Después de obtener los detalles del equipo, puede obtener la lista de canales de un equipo. Actualmente, para recuperar información de una lista de canales de un equipo, use las API de bot de Teams TeamsInfo.GetTeamChannelsAsync
para C# o TeamsInfo.getTeamChannels
para las API de TypeScript.
Obtiene la lista de canales en un equipo
El bot puede consultar la lista de canales de un equipo.
Nota:
- El nombre del canal predeterminado General se devuelve como
null
para permitir la localización. - El identificador de canal General siempre coincide con el identificador de equipo.
El siguiente código de ejemplo se usa para obtener la lista de canales de un equipo:
public class MyBot : TeamsActivityHandler
{
// Override this in a derived class to provide logic specific to Message activities.
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Returns a list of channels in a Team. This only works in team scoped conversations.
IEnumerable<ChannelInfo> channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
// Sends a message activity to the sender of the incoming activity.
await turnContext.SendActivityAsync($"The channel count is: {channels.Count()}");
}
}
Ejemplos de bot de Teams
Ejemplo de código
Para obtener ejemplos de trabajo completos que muestran la funcionalidad, consulte los siguientes ejemplos de Teams para Bot Framework:
Ejemplo de nombre | Descripción | .NET | Node.js | Python | Manifiesto |
---|---|---|---|---|---|
Bot de conversación de Teams | En este ejemplo se muestra cómo usar diferentes eventos de conversación de bot disponibles en bot framework v4 para el ámbito personal y de teams. | View | View | View | Ver |
Autenticación con OAuthPrompt | En este ejemplo se muestra la autenticación y la mensajería básica en Bot Framework v4. | View | View | View | Ver |
Carga de archivos de Teams | En este ejemplo se muestra cómo usar archivos con un bot en una conversación uno a uno. | View | View | View | Ver |
Cuadro de diálogo (denominado módulo de tareas en TeamsJS v1.x) | En este ejemplo se muestra cómo usar un cuadro de diálogo y los valores de las tarjetas en él para una extensión de mensaje. | View | View | View | View |
Iniciar nuevo hilo en un canal | En este ejemplo se muestra cómo usar un nuevo subproceso en un canal mediante bot. | View | View | View | Ver |
Localización de aplicaciones de Teams | En este ejemplo se muestra cómo usar la localización de aplicaciones de Teams mediante bot y pestaña. | View | View | ND | View |
Paso siguiente
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de