Получение всех сообщений канала через RSC

Модель разрешений для конкретного ресурса (RSC), изначально разработанная для API Graph Teams, распространяется на сценарии бота.

Теперь с помощью RSC вы можете запрашивать у владельцев команд согласие на получение ботом сообщений пользователей в стандартных каналах команды без @упоминания. Эта возможность включается путем указания разрешения ChannelMessage.Read.Group в манифесте приложения Teams с поддержкой RSC. После настройки владельцы команд могут предоставлять согласие во время установки приложения.

Дополнительные сведения о включении RSC для вашего приложения см. в разделе о согласии для конкретных ресурсов в Teams.

Включение ботов для получения всех сообщений каналов

Разрешение RSC ChannelMessage.Read.Group распространяется на ботов. С согласия пользователя это разрешение позволяет приложениям Graph получать все сообщения в беседе, а ботам — получать все сообщения каналов без @упоминания.

Примечание

  • Службы, которым требуется доступ ко всем данным сообщений Teams, должны использовать API-интерфейсы Graph, также предоставляющие доступ к архивным данным в каналах и чатах.
  • Боты должны соответствующим образом использовать разрешение RSC ChannelMessage.Read.Group для создания и расширения взаимодействия с пользователями в команде. В противном случае они не пройдут утверждение магазина. Описание приложения должно включать способ использования ботом считываемых данных.
  • Боты могут не использовать разрешение RSC ChannelMessage.Read.Group для извлечения больших объемов данных клиента.

Обновление манифеста приложения

Чтобы ваш бот получал все сообщения каналов, RSC должно быть настроено в манифесте приложения Teams с разрешением ChannelMessage.Read.Group, указанным в свойстве webApplicationInfo.

Обновление манифеста приложения

Ниже приведен пример объекта webApplicationInfo.

  • id: идентификатор вашего приложения Microsoft Azure Active Directory (Azure AD). Может совпадать с идентификатором вашего бота.
  • resource: любая строка. Это поле не используется в RSC, но должно быть добавлено и иметь значение, чтобы избежать отклика с ошибкой.
  • applicationPermissions: необходимо указать разрешения RSC для вашего приложения с ChannelMessage.Read.Group. Дополнительные сведения см. в разделе Разрешения для определенных ресурсов.

В следующем коде приведен пример манифеста приложения.

"webApplicationInfo": {
"id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
"resource": "https://AnyString",
"applicationPermissions": [
"ChannelMessage.Read.Group"
    ]
  }

Загрузка без публикации в команде

Чтобы выполнить загрузку без публикации в команде для тестирования того, удается ли получить все сообщения каналов в команде с RSC без @упоминания:

  1. Выберите или создайте команду.

  2. Щелкните многоточие ●●● в области слева. Появится раскрывающееся меню.

  3. Выберите Управление командой в раскрывающемся меню. Отобразятся сведения.

    Управление приложениями в команде

    управление командой

  4. Выберите Приложения. Появится несколько приложений.

  5. Выберите Отправить пользовательское приложение в правом нижнем углу.

    отправка пользовательского приложения

  6. Выберите пакет приложения в диалоговом окне Открыть.

  7. Выберите Открыть.

    Выбор пакета приложения

  8. Нажмите Добавить во всплывающем окне со сведениями о приложении, чтобы добавить бота в выбранную команду.

    Добавление бота

  9. Выберите канал и введите сообщение в канале для своего бота.

    Бот получает сообщение без @упоминания.

    Получение сообщения ботом

Фрагменты кода

В следующем коде приведен пример разрешений RSC.


// Handle when a message is addressed to the bot. 
// When rsc is enabled the method will be called even when bot is addressed without being @mentioned
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
  await turnContext.SendActivityAsync(MessageFactory.Text("Using RSC the bot can recieve messages across channels in team without being @mentioned."));
}

Пример кода

Название примера Описание C# Node.js
Сообщения каналов с разрешениями RSC Пример приложения Microsoft Teams, демонстрирующий, как бот может получать все сообщения каналов с RSC без @упоминания. View Просмотр

Дополнительные ресурсы