Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un événement est un concept fondamental dans la création d’agents : il représente quelque chose d’important qui se produit sur Microsoft Teams ou au sein de votre application. Ces événements peuvent provenir de l’utilisateur (par exemple, l’installation ou la désinstallation de votre application, l’envoi d’un message, l’envoi d’un formulaire) ou de votre serveur d’applications (par exemple, démarrage, erreur dans un gestionnaire).
Le SDK Teams facilite la souscription à ces événements et y répond de manière appropriée. Vous pouvez inscrire les gestionnaires d’événements pour effectuer des actions personnalisées lorsque des événements spécifiques se produisent, tels que la journalisation d’erreurs, le déclenchement de workflows ou l’envoi de messages de suivi.
Voici les événements pour lesquels vous pouvez commencer à créer des gestionnaires :
| Nom de l'événement | Description |
|---|---|
start |
Déclenché au démarrage de votre application. Utile pour la journalisation au moment de l’installation ou du démarrage. |
sign_in |
Déclenché lors d’un flux de connexion via Teams. |
error |
Déclenché lorsqu’une erreur non gérée se produit dans votre application. Idéal pour les diagnostics. |
activity |
Déclenché pour toutes les activités Teams entrantes (messages, commandes, etc.). |
activity_response |
Déclenché lorsque votre application envoie une réponse à une activité. Utile pour la journalisation. |
activity_sent |
Déclenché lorsqu’une activité est envoyée (pas nécessairement dans une réponse). |
Remarque
L’inscription du gestionnaire d’événements utilise @app.event("<event_name>") une fonction asynchrone qui reçoit un objet d’événement spécifique au type d’événement (par exemple, ErrorEventActivityEvent).
| Nom de l'événement | Description |
|---|---|
start |
Déclenché au démarrage de votre application. Utile pour la journalisation au moment de l’installation ou du démarrage. |
signin |
Déclenché lors d’un flux de connexion via Teams. |
error |
Déclenché lorsqu’une erreur non gérée se produit dans votre application. Idéal pour les diagnostics. |
activity |
Fourre-tout pour les activités Teams entrantes (messages, commandes, etc.). |
activity.response |
Déclenché lorsque votre application envoie une réponse à une activité. Utile pour la journalisation. |
activity.sent |
Déclenché lorsqu’une activité est envoyée (pas nécessairement dans une réponse). |
Exemple 1
Nous pouvons nous abonner aux erreurs qui se produisent dans l’application.
@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
});
Exemple 2
Lorsqu’un utilisateur se connecte à l’aide OAuth de ou SSO, utilisez l’API Graph pour récupérer son profil et dire bonjour.
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}")
Conseil
L’événement à l’échelle sign_in de l’application se déclenche pour chaque connexion. Pour ne réagir qu’à un seul, utilisez le gestionnaire de @flow.on_signin son flux comme indiqué ci-dessus. Consultez Authentifier les utilisateurs dans Microsoft Teams.
Lorsqu’un utilisateur se connecte à l’aide de OAuth ou SSO, utilisez l’API Graph pour récupérer son profil et dire bonjour.
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}`);
});
Conseil
L’événement à l’échelle signin de l’application se déclenche pour chaque connexion. Pour ne réagir qu’à une seule, utilisez le rappel de onSignInComplete son flux comme indiqué ci-dessus. Consultez Authentifier les utilisateurs dans Microsoft Teams.