Получение конкретного контекста для лентыGet Team's specific context for your bot

Важно!

Примеры кода, приведенные в этом разделе, основаны на 4,6 и более поздних версиях пакета SDK Bot.The code samples in this section are based on 4.6 and later versions of the Bot Framework SDK. Если вы ищете документацию по более ранним версиям, ознакомьтесь с разделом Боты – v3 SDK в папке resources этой документации.If you're looking for documentation for earlier versions, see the Bots - v3 SDK section in the Resources folder of the documentation.

С помощью программы Bot можно получить доступ к дополнительным контекстным данным о команде или в чате, в котором она установлена.A bot can access additional context data about a team or chat it is installed in. Эти сведения можно использовать, чтобы расширить функциональные возможности Bot и предоставить более персонализированный интерфейс.This information can be used to enrich the bot's functionality and provide a more personalized experience.

Получение списка или профиля пользователяFetching the roster or user profile

Ваш Bot может запрашивать список участников и их базовые профили, в том числе идентификаторы пользователей Teams и Azure Active Directory (Azure AD), такие как Name и objectId.Your bot can query for the list of members and their basic profiles, including Teams user IDs and Azure Active Directory (Azure AD) information such as name and objectId. Вы можете использовать эти сведения для корреляции удостоверений пользователей, например, для проверки того, вошел ли пользователь в вкладку с помощью учетных данных Azure AD, является участником команды.You can use this information to correlate user identities, e.g., to check whether a user, logged into a tab through Azure AD credentials, is a member of the team. Приведенный ниже пример кода использует конечную точку с страничной проверкой для получения списка.The sample code below uses the paged endpoint for retrieving the roster. Несмотря на то, что вы по-прежнему можете использовать нестраничную версию, оно будет ненадежным в крупных командах и не должно использоваться.Although you may still use the non-paged version, it will be unreliable in large teams and should not be used. В этой статье представлены дополнительные сведения.See this article for additional information.

public class MyBot : TeamsActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        var members = new List<TeamsChannelAccount>();
        string continuationToken = null;

        do
        {
            var currentPage = await TeamsInfo.GetPagedMembersAsync(turnContext, 100, continuationToken, cancellationToken);
            continuationToken = currentPage.ContinuationToken;
            members.AddRange(currentPage.Members);
         }
         while (continuationToken != null);
     }
}

Получение сведений об отдельных участникахGet single member details

Вы также можете получить сведения об определенном пользователе, используя идентификатор пользователя, имя участника-пользователя или идентификатор объекта AAD.You can also retrieve the details of a particular user using their Teams user Id, UPN, or AAD Object Id.

public class MyBot : TeamsActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
    }
}

Получение сведений о группеGet team's details

При установке в команде Bot может запрашивать метаданные о команде, включая Azure AD groupId.When installed in a team, your bot can query for metadata about that team including the Azure AD groupId.

public class MyBot : TeamsActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        TeamDetails teamDetails = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
        if (teamDetails != null) {
            await turnContext.SendActivityAsync($"The groupId is: {teamDetails.AadGroupId}");
        }
        else {
            await turnContext.SendActivityAsync($"Message did not come from a channel in a team.");
        }
    }
}

Получение списка каналов в командеGet the list of channels in a team

Ваш робот может запросить список каналов в команде.Your bot can query the list of channels in a team.

Примечание

  • По умолчанию возвращается имя общего канала, null позволяющее выполнять локализацию.The name of the default General channel is returned as null to allow for localization.
  • Идентификатор канала для общего канала всегда соответствует ИДЕНТИФИКАТОРу группы.The channel ID for the General channel always matches the team ID.
public class MyBot : TeamsActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        IEnumerable<ChannelInfo> channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);

        await turnContext.SendActivityAsync($"The channel count is: {channels.Count()}");
    }
}

Примеры ленты TeamsTeams bot samples

Для полностью работающих примеров, демонстрирующих некоторые из этих функций, ознакомьтесь со статьями примеры для Teams для Bot FrameworkFor a fully working samples demonstrating some of this functionality, check out the Teams samples for Bot Framework

ПримерSample ОписаниеDescription .NET Core.NET Core JavaScriptJavaScript PythonPython
Bot для бесед в TeamsTeams Conversation Bot Обработка событий сообщений и бесед.Messaging and conversation event handling. ViewView ViewView ViewView
Проверка подлинности с помощью ОауспромптAuthentication with OAuthPrompt Проверка подлинности и обычная система обмена сообщениями в Bot Framework v4.Authentication and basic messaging in Bot Framework v4. ViewView ViewView ViewView
Отправка файлов TeamsTeams File Upload Обмен файлами с помощью Bot в беседе "один к одному".Exchanging files with a bot in a one-to-one conversation. ViewView ViewView ViewView
Модуль задачTask Module Демонстрация извлечения модуля задачи и значений из карточек в ней для расширения обмена сообщениями.Demonstrating how to retrieve a Task Module and values from cards in it, for a Messaging Extension. ViewView ViewView ViewView
Запуск нового потока в каналеStart new thread in a channel Демонстрация создания нового потока в канале.Demonstrating how to create a new thread in a channel. ViewView ViewView ViewView