Есть ли понятие имени арендатора в контексте или функции бота MS Teams? - PullRequest
3 голосов
/ 31 января 2020

В botbuilder есть объект context.activity.channelData, который получил мой бот. У него есть объект tenant, который содержит только свойство id. Есть ли какое-либо свойство или функция, которая может вернуть мне имя арендатора (организации), который принадлежит этому id?

Вот пример. Пользователь работает на Acme Inc. и имеет три команды MS Teams: Team1, Team2 и Team3. Я могу получить названия всех команд, и я могу получить tenantId для «Acme In c». но как я могу получить имя арендатора, которому принадлежит эта команда, то есть текст Acme Inc.?

Ответы [ 2 ]

3 голосов
/ 31 января 2020

К сожалению, вы не можете получить эту информацию из channelData.

Вы можете использовать GraphAPI для возврата имени организации. https://graph.microsoft.com/v1.0/organization?$select=displayName

https://developer.microsoft.com/en-us/graph/graph-explorer

Здесь - пример бота о том, как использовать граф в боте. И здесь - пример использования аутентификации в командах. Собрав все это вместе, вы сможете получить эту информацию.

При необходимости вы можете получить идентификатор группы AAD из TeamsInfo. Информация здесь .

2 голосов
/ 02 февраля 2020

Хотя фактическое имя арендатора само по себе невозможно получить из данных канала, , который вы можете сделать в своем боте, - это позвонить, чтобы получить «участников беседы», чтобы получить UPN для пользователь (ы). Вот пример в C# (я уверен, что есть эквивалент узла), который даст вам свойства, в том числе:

"userPrincipalName": "MeganB@[whatever].OnMicrosoft.com"

Этого может быть достаточно для того, что вам нужно?

...