Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
An event is a foundational concept in building agents — it represents something noteworthy happening either on Microsoft Teams or within your application. These events can originate from the user (e.g. installing or uninstalling your app, sending a message, submitting a form), or from your application server (e.g. startup, error in a handler).
The Teams SDK makes it easy to subscribe to these events and respond appropriately. You can register event handlers to take custom actions when specific events occur — such as logging errors, triggering workflows, or sending follow-up messages.
Here are the events that you can start building handlers for:
| Event Name | Description |
|---|---|
start |
Triggered when your application starts. Useful for setup or boot-time logging. |
signin |
Triggered during a sign-in flow via Teams. |
error |
Triggered when an unhandled error occurs in your app. Great for diagnostics. |
activity |
A catch-all for incoming Teams activities (messages, commands, etc.). |
activity.response |
Triggered when your app sends a response to an activity. Useful for logging. |
activity.sent |
Triggered when an activity is sent (not necessarily in response). |
| Event Name | Description |
|---|---|
start |
Triggered when your application starts. Useful for setup or boot-time logging. |
sign_in |
Triggered during a sign-in flow via Teams. |
error |
Triggered when an unhandled error occurs in your app. Great for diagnostics. |
activity |
Triggered for all incoming Teams activities (messages, commands, etc.). |
activity_response |
Triggered when your app sends a response to an activity. Useful for logging. |
activity_sent |
Triggered when an activity is sent (not necessarily in response). |
Note
Event handler registration uses @app.event("<event_name>") with an async function that receives an event object specific to the event type (e.g., ErrorEvent, ActivityEvent).
Example 1
We can subscribe to errors that occur in the app.
app.OnError((sender, @event) =>
{
// do something with the error
app.Logger.Info(@event.Exception.ToString());
});
@app.event("error")
async def handle_error(event: ErrorEvent):
"""Handle error events."""
print(f"Error occurred: {event.error}")
if hasattr(event, "context") and event.context:
print(f"Context: {event.context}")
app.event('error', ({ error }) => {
app.log.error(error);
// Or Alternatively, send it to an observability platform
});
Example 2
When an activity is received, log its JSON payload.
app.OnActivity((sender, @event) =>
{
app.Logger.Info(@event.Activity.ToString());
});
When an activity is received, log its payload.
@app.event("activity")
async def handle_activity(event: ActivityEvent):
"""Handle activity events."""
print(f"Activity received: {event.activity}")
When a user signs in using OAuth or SSO, use the graph api to fetch their profile and say hello.
import * as endpoints from '@microsoft/teams.graph-endpoints';
app.event('signin', async ({ activity, send, userGraph }) => {
const me = await userGraph.call(endpoints.me.get);
await send(`👋 Hello ${me.name}`);
});