Я пытаюсь получить все каналы, связанные с конкретной командой, чтобы мой бот мог отправлять проактивные сообщения.На основании прочитанного мною чтения мне нужно использовать метод 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 (), то это не пустое значение, а Connector.GetTeamsConnectorClient (). Teams.FetchChannelList (activity.GetChannelData (). Team.Id).далее я попытался получить активность. GetChannelData ().Только свойство Арендатор не является нулевым.Все остальные (Channel, Team, EventType и Notification) имеют значение null.
Я использую туннельное реле, которое перенаправляет сообщения, отправленные в публичную конечную точку бота, в частную конечную точку, и использую аутентификацию фильтра арендатора в контроллере сообщений.,Не уверен, что это вызовет какие-либо проблемы?(Когда я смотрю сообщения, поступающие через туннельный ретранслятор, я также вижу там, что только Tenant является единственным свойством channeldata, которое не является нулевым. Вот что я вижу в 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 me@abc.com). Он возвращает отдельный идентификатор groupId для каждой команды, частью которой я являюсь, но я предполагаю, что groupId! = TeamId. Это правильно? И где я могу найти teamId, который FetchChannelList ожидает, кроме метода GetChannelData?
Заранее спасибо за любую помощь!