The API Client
BotBuilder exposes a static class TeamsInfo that allows you to query the api. In Teams SDK
we pass an instance of our ApiClient into all our activity handlers through the context.
tip
The Teams SDK ApiClient uses a fluent API pattern that makes it easier to discover available methods through IDE autocompletion.
- Diff
- BotBuilder
- Teams SDK
- from botbuilder.core import ActivityHandler, TurnContext
- from botbuilder.core.teams import TeamsInfo
+ from microsoft.teams.apps import ActivityContext
+ from microsoft.teams.api import MessageActivity
- class MyActivityHandler(ActivityHandler):
- async def on_message_activity(self, turn_context: TurnContext):
- members = await TeamsInfo.get_members(turn_context)
+ @app.on_message
+ async def on_message(context: ActivityContext[MessageActivity]):
+ members = await context.api.conversations.members(context.activity.conversation.id).get_all()
from botbuilder.core import ActivityHandler, TurnContext
from botbuilder.core.teams import TeamsInfo
class MyActivityHandler(ActivityHandler):
async def on_message_activity(self, turn_context: TurnContext):
members = await TeamsInfo.get_members(turn_context)
from microsoft.teams.api import MessageActivity
from microsoft.teams.apps import ActivityContext
@app.on_message
async def on_message(context: ActivityContext[MessageActivity]):
members = await context.api.conversations.members(context.activity.conversation.id).get()
Mapping TeamsInfo APIs to Teams SDK ApiClient Methods​
The following table shows common BotBuilder TeamsInfo methods and their equivalent Teams SDK ApiClient methods:
| BotBuilder (TeamsInfo) | Teams SDK (ApiClient) |
|---|---|
TeamsInfo.getMembers(context, user_id) | api.conversations.members.get_by_id(conversation_id, user_id) |
TeamsInfo.get_team_details(context, team_id) | api.teams.get_by_id(team_id) |
TeamsInfo.get_meeting_info(context, meeting_id) | api.meetings.get_by_id(meeting_id) |
TeamsInfo.send_message_to_teams_channel(context, team_id, message) | api.conversations.create() then api.conversations.activities.create(conversation_id, activity) |