Я пытаюсь связать все каналы с определенной командой, чтобы мой бот мог отправлять проактивные сообщения. Основываясь на прочитанном, мне нужно использовать метод FetchChannelList в пространстве имен Microsoft.Bot.Connector.Teams в классе TeamsOperationsExtensions.
Если я сделаю это:
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
ConversationList channels = connector.GetTeamsConnectorClient().Teams.FetchChannelList(activity.GetChannelData<TeamsChannelData>().Team.Id);
каналы - ноль. Если я разделю его только на connector.GetTeamsConnectorClient (), это будет не null, а на connector.GetTeamsConnectorClient (). Teams.FetchChannelList (activity.GetChannelData (). Team.Id) будет.
Чтобы разбить это дальше, я попытался получить activity.GetChannelData (). Только свойство Tenant не равно нулю. Все остальные (Channel, Team, EventType и Notification) равны нулю.
Я использую tunnelrelay, которое пересылает сообщения, отправленные на общедоступную конечную точку бота, на частную конечную точку, и использую аутентификацию с фильтром клиента в контроллере сообщений. Не уверены, что это вызовет какие-либо проблемы? (Когда я смотрю сообщения, поступающие через туннельный ретранслятор, я также вижу, что только Tenant является единственным свойством channeldata, которое не имеет значения NULL. Вот что я вижу в tunnelrelay: "entities":[{"locale":"en- US","country":"US","platform":"Windows","type":"clientInfo"}],"channelData":{"tenant":{"id":"our_tenant_id"}}}
Кроме того, что касается teamID, ожидаемого в качестве параметра метода FetchChannelList, как мне узнать, что это такое для данной команды, кроме метода GetChannelData ()? Я попробовал использовать командлет PowerShell Get-Team (например: Get-Team -User [email protected]). Он возвращает отдельный groupId для каждой команды, частью которой я являюсь, но я предполагаю, что groupId! = TeamId. Это верно? И где я могу найти teamId, который ожидает FetchChannelList, кроме метода GetChannelData?
Заранее благодарю за любую помощь!