bot framework и команды Microsoft - как связать все каналы с командой?

Я пытаюсь связать все каналы с определенной командой, чтобы мой бот мог отправлять проактивные сообщения. Основываясь на прочитанном, мне нужно использовать метод 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?

Заранее благодарю за любую помощь!


person redmondcoffehead    schedule 12.12.2018    source источник


Ответы (1)


Проблема заключалась в том, что сообщение боту (активность) было прямым сообщением, а не частью разговора на канале. Судя по всему, свойства Channel и Team доступны только в разговоре канала.

Кроме того, что касается идентификатора команды, один из способов получить его за пределами кода - это щелкнуть «...» рядом с командой и щелкнуть «получить ссылку на команду». Вы увидите что-то вроде:

Строка после команды / (19% 3a813345c7fafe437e871111115934th3% 40thread.skype) содержит идентификатор команды, но не совсем. Если вы замените первый% и два следующих за ним символа на:, а второй% и два следующих за ним символа на @, это будет ваш teamid. Итак, из:

19% 3a813345c7fafe437e871111115934th3% 40thread.skype

ID команды:

19: [email protected]

person redmondcoffehead    schedule 14.12.2018