Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.
// highlight-error-start
- using Microsoft.Bot.Builder;
- using Microsoft.Bot.Builder.Teams;
// highlight-error-end
// highlight-success-line
+ using Microsoft.Teams.Apps;
// highlight-error-start
- public class MyActivityHandler : ActivityHandler
- {
- protected override async Task OnMessageActivityAsync(
- ITurnContext<IMessageActivity> turnContext,
- CancellationToken cancellationToken)
- {
- var members = await TeamsInfo.GetMembersAsync(turnContext, cancellationToken);
- }
- }
// highlight-error-end
// highlight-success-start
+ var teams = app.UseTeams();
+ teams.OnMessage(async (context, cancellationToken) =>
+ {
+ var members = await context.Api.Conversations.Members.GetAsync(context.Activity.Conversation.Id);
+ });
// highlight-success-end
# highlight-error-start
- from botbuilder.core import ActivityHandler, TurnContext
- from botbuilder.core.teams import TeamsInfo
# highlight-error-end
# highlight-success-line
+ from microsoft_teams.apps import ActivityContext
+ from microsoft_teams.api import MessageActivity
# highlight-error-start
- class MyActivityHandler(ActivityHandler):
- async def on_message_activity(self, turn_context: TurnContext):
- members = await TeamsInfo.get_members(turn_context)
# highlight-error-end
# highlight-success-start
+ @app.on_message
+ async def on_message(context: ActivityContext[MessageActivity]):
+ members = await context.api.conversations.members(context.activity.conversation.id).get_all()
# highlight-success-end
// highlight-error-start
- import {
- CloudAdapter,
- ConfigurationBotFrameworkAuthentication,
- TeamsInfo,
- } from 'botbuilder';
// highlight-error-end
// highlight-success-line
+ import { App } from '@microsoft/teams.apps';
// highlight-error-start
- const auth = new ConfigurationBotFrameworkAuthentication(process.env);
- const adapter = new CloudAdapter(auth);
// highlight-error-end
// highlight-success-line
+ const app = new App();
// highlight-error-start
- export class ActivityHandler extends TeamsActivityHandler {
- constructor() {
- super();
- this.onMessage(async (context) => {
- const members = await TeamsInfo.getMembers(context);
- });
- }
- }
// highlight-error-end
// highlight-success-start
+ app.on('message', async ({ api, activity }) => {
+ const members = await api.conversations.members(activity.conversation.id).get();
+ });
// highlight-success-end
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.GetMemberAsync(context, userId) |
Api.Conversations.Members.GetByIdAsync(conversationId, userId) |
TeamsInfo.GetTeamDetailsAsync(context, teamId) |
Api.Teams.GetByIdAsync(teamId) |
TeamsInfo.GetMeetingInfoAsync(context, meetingId) |
Api.Meetings.GetByIdAsync(meetingId) |
TeamsInfo.SendMessageToTeamsChannelAsync(context, teamId, message) |
Api.Conversations.CreateAsync(CreateRequest) then Api.Conversations.Activities.CreateAsync(conversationId, activity) |
| BotBuilder (TeamsInfo) | Teams SDK (ApiClient) |
|---|---|
TeamsInfo.getMembers(context, user_id) |
api.conversations.members(conversation_id).get(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(CreateConversationParams) then api.conversations.activities(conversation_id).create(activity) |
| BotBuilder (TeamsInfo) | Teams SDK (ApiClient) |
|---|---|
TeamsInfo.getMember(context, userId) |
api.conversations.members(conversationId).getById(userId) |
TeamsInfo.getTeamDetails(context, teamId) |
api.teams.getById(teamId) |
TeamsInfo.getMeetingInfo(context, meetingId) |
api.meetings.getById(meetingId) |
TeamsInfo.sendMessageToTeamsChannel(context, teamId, message) |
api.conversations.create(CreateConversationParams) then api.conversations.activities(conversationId).create(activity) |