Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Важно!
Примеры кода в этом разделе основаны на версии 4.6 и более поздних версиях пакета SDK Bot Framework. Если вы ищете документацию по более ранним версиям, см. раздел пакет SDK для ботов версии 3 в папке Устаревшие пакеты SDK документации.
Бот может получить доступ к дополнительным контекстным данным о команде или чате, где он установлен. Эти сведения можно использовать для расширения функциональных возможностей бота и его персонализации.
Получение состава или профиля
Бот может запрашивать список участников и их базовые профили пользователей, включая идентификаторы пользователей Teams и Microsoft Entra сведения, такие как имя и objectId. Эти сведения можно использовать для сопоставления удостоверений пользователей. Например, чтобы проверка, является ли пользователь, вошедший на вкладку с помощью Microsoft Entra учетных данных, членом команды. Для получения участников беседы минимальный или максимальный размер страницы зависит от реализации. Размер страницы менее 50 обрабатывается как 50, а размер больше 500 ограничивается 500. Даже если вы используете нестраничную версию, она ненадежна в больших командах и не должна использоваться. Дополнительные сведения см. в статье об изменениях API ботов Teams для получения сведений участников команды или чата.
Примечание.
- Разбиение на страницы доступно в команде и канале.
- Разбиение на страницы в чатах не поддерживается. Для чатов всегда возвращается весь список.
В следующем примере кода для получения списка используется выгружаемая конечная точка:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
var members = new List<TeamsChannelAccount>();
string continuationToken = null;
do
{
// Gets a paginated list of members of one-on-one, group, or team conversation.
var currentPage = await TeamsInfo.GetPagedMembersAsync(turnContext, 100, continuationToken, cancellationToken);
continuationToken = currentPage.ContinuationToken;
members.AddRange(currentPage.Members);
}
while (continuationToken != null);
}
}
После получения состава или профиля вы можете получить сведения об одном участнике. Чтобы получить сведения об одном или нескольких участниках чата или команды, используйте API TeamsInfo.GetMembersAsync
бота Microsoft Teams для C# или TeamsInfo.getMembers
API TypeScript.
Получение сведений об одном элементе
Вы также можете получить сведения о конкретном пользователе, используя его идентификатор пользователя Teams, имя участника-пользователя или идентификатор объекта Microsoft Entra.
Следующий пример кода используется для получения сведений об одном элементе:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Gets the account of a single conversation member.
// This works in one-on-one, group, and team scoped conversations.
var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
}
}
После получения сведений об одном участнике можно получить сведения о команде. Чтобы получить сведения для команды, используйте API TeamsInfo.GetMemberDetailsAsync
бота Teams для C# или TeamsInfo.getTeamDetails
TypeScript.
Получение сведений о команде
При установке в команде бот может запрашивать метаданные об этой команде, включая идентификатор группы Microsoft Entra.
Следующий пример кода используется для получения сведений о команде:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Gets the details for the given team id. This only works in team scoped conversations.
// TeamsGetTeamInfo: Gets the TeamsInfo object from the current activity.
TeamDetails teamDetails = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
if (teamDetails != null) {
await turnContext.SendActivityAsync($"The groupId is: {teamDetails.AadGroupId}");
}
else {
// Sends a message activity to the sender of the incoming activity.
await turnContext.SendActivityAsync($"Message did not come from a channel in a team.");
}
}
}
После получения сведений о команде можно получить список каналов в команде. Чтобы получить сведения о списке каналов в команде, используйте API TeamsInfo.GetTeamChannelsAsync
бота Teams для C# или TeamsInfo.getTeamChannels
API TypeScript.
Получение списка каналов в команде
Бот может запрашивать список каналов в команде.
Примечание.
- Имя общего канала по умолчанию возвращается в качестве
null
, чтобы разрешить локализацию. - Идентификатор канала для общего канала всегда совпадает с идентификатором команды.
Следующий пример кода используется для получения списка каналов в команде:
public class MyBot : TeamsActivityHandler
{
// Override this in a derived class to provide logic specific to Message activities.
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Returns a list of channels in a Team. This only works in team scoped conversations.
IEnumerable<ChannelInfo> channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
// Sends a message activity to the sender of the incoming activity.
await turnContext.SendActivityAsync($"The channel count is: {channels.Count()}");
}
}
Пример кода
Полные рабочие примеры, демонстрирующие эту функциональность, см. в следующих примерах Teams для Bot Framework:
Название примера | Описание | .NET | Node.js | Python | Манифест |
---|---|---|---|---|---|
Бот для беседы в Teams | Это приложение демонстрирует события бесед бота, поддерживающие адаптивные карточки, уведомления о прочтении и события обновления сообщений. Он включает в себя поддержку иммерсивного чтения для специальных возможностей. | Просмотр | Просмотр | Просмотр | Просмотр |
Проверка подлинности с помощью OAuthPrompt | В этом примере приложения показано, как бот может использовать проверку подлинности Teams. | Просмотр | Просмотр | Просмотр | Просмотр |
Отправка файла Teams | Этот пример бота для Teams демонстрирует возможности отправки файлов с помощью Bot Framework версии 4, позволяя пользователям отправлять файлы и просматривать встроенные изображения в чатах. | Просмотр | Просмотр | Просмотр | Просмотр |
Dialog (называется модулем задач в TeamsJS версии 1.x) | В этом примере приложения демонстрируется использование диалоговых окон (называемых модулями задач в TeamsJS версии 1.x) с помощью Bot Framework версии 4 | Просмотр | Просмотр | Просмотр | Просмотр |
Запуск нового потока в канале | В этом приложении показано, как запустить поток беседы в определенном канале Teams с помощью Bot Framework версии 4. | Просмотр | Просмотр | Просмотр | Просмотр |
Локализация приложений Teams | В этом примере показано, как реализовать локализацию для приложений Microsoft Teams с помощью ботов и вкладок. | Просмотр | Просмотр | Н/Д | Просмотр |
Следующий этап
См. также
Platform Docs