Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un evento es un concepto fundamental en la creación de agentes: representa algo digno de mención que sucede en Microsoft Teams o en la aplicación. Estos eventos pueden originarse desde el usuario (por ejemplo, instalar o desinstalar la aplicación, enviar un mensaje, enviar un formulario) o desde el servidor de aplicaciones (por ejemplo, inicio, error en un controlador).
El SDK de Teams facilita la suscripción a estos eventos y responde adecuadamente. Puede registrar controladores de eventos para realizar acciones personalizadas cuando se produzcan eventos específicos, como registrar errores, desencadenar flujos de trabajo o enviar mensajes de seguimiento.
Estos son los eventos para los que puede empezar a crear controladores:
| Nombre del evento | Descripción |
|---|---|
start |
Se desencadena cuando se inicia la aplicación. Es útil para la configuración o el registro durante el arranque. |
sign_in |
Se desencadena durante un flujo de inicio de sesión a través de Teams. |
error |
Se desencadena cuando se produce un error no controlado en la aplicación. Ideal para diagnósticos. |
activity |
Se desencadena para todas las actividades entrantes de Teams (mensajes, comandos, etc.). |
activity_response |
Se desencadena cuando la aplicación envía una respuesta a una actividad. Útil para el registro. |
activity_sent |
Se desencadena cuando se envía una actividad (no necesariamente en respuesta). |
Nota:
El registro del controlador de eventos se usa @app.event("<event_name>") con una función asincrónica que recibe un objeto de evento específico para el tipo de evento (por ejemplo, ErrorEvent, ActivityEvent).
| Nombre del evento | Descripción |
|---|---|
start |
Se desencadena cuando se inicia la aplicación. Es útil para la configuración o el registro durante el arranque. |
signin |
Se desencadena durante un flujo de inicio de sesión a través de Teams. |
error |
Se desencadena cuando se produce un error no controlado en la aplicación. Ideal para diagnósticos. |
activity |
Un cajón de sastre para las actividades entrantes de Teams (mensajes, comandos, etc.). |
activity.response |
Se desencadena cuando la aplicación envía una respuesta a una actividad. Útil para el registro. |
activity.sent |
Se desencadena cuando se envía una actividad (no necesariamente en respuesta). |
Ejemplo 1
Podemos suscribirnos a los errores que se producen en la aplicación.
@app.event("error")
async def handle_error(event: ErrorEvent):
print(f"Error occurred: {event.error}")
# Or alternatively, send it to an observability platform
app.event('error', ({ error }) => {
app.log.error(error);
// Or Alternatively, send it to an observability platform
});
Ejemplo 2
Cuando un usuario inicie sesión con OAuth o SSO, use la Graph API para capturar su perfil y saludarlo.
from microsoft_teams.graph import get_graph_client
graph = app.add_oauth_flow("graph")
@graph.on_signin
async def handle_signin(event: SignInEvent):
client = get_graph_client(event.token_response.token)
me = await client.me.get()
await event.activity_ctx.send(f"👋 Hello {me.display_name}")
Sugerencia
El evento de toda sign_in la aplicación se desencadena para todas las conexiones. Para reaccionar a solo uno, use su controlador de @flow.on_signin flujo como se muestra arriba. Consulte Autenticar usuarios en Microsoft Teams.
Cuando un usuario inicia sesión con OAuth o SSO, use la API de Graph para capturar su perfil y saludarlo.
import { Client as GraphClient } from '@microsoft/teams.graph';
import * as endpoints from '@microsoft/teams.graph-endpoints';
const graph = app.addOAuthFlow('graph');
graph.onSignInComplete(async (ctx, token) => {
const client = new GraphClient({ token: () => token.token }, { baseUrlRoot: app.graphBaseUrl });
const me = await client.call(endpoints.me.get);
await ctx.send(`👋 Hello ${me.displayName}`);
});
Sugerencia
El evento de toda signin la aplicación se desencadena para todas las conexiones. Para reaccionar a solo uno, use la devolución de onSignInComplete llamada de su flujo como se muestra arriba. Consulte el Ver Autenticar usuarios en Microsoft Teams.