Есть ли способ отличить guish между пользователями из разных организаций в боте Microsoft Teams? - PullRequest
1 голос
/ 15 января 2020

Хочу узнать организацию пользователей в командах-ботах. Я зарегистрировал свое приложение на портале azure как мультитенантное приложение.

1 Ответ

1 голос
/ 15 января 2020

Единственный способ отличить guish между членами разных организаций, использующих среду ботов, - это сравнение идентификаторов арендаторов. Вы можете получить доступ к tenantID, используя информацию о члене команды, сопоставленную с объектом TeamsChannelAccount , видимым здесь

Вы можете получить доступ к этому объекту, используя teamInfo.getMembers

В коде бота это будет выглядеть примерно так:

async messageAllMembersAsync(context) {
    const members = await TeamsInfo.getMembers(context);

    members.forEach(async (teamMember) => {
        const test = teamMember;
        const message = MessageFactory.text(`Hello ${ teamMember.givenName } ${ teamMember.surname }. I'm a Teams conversation bot.`);

        var ref = TurnContext.getConversationReference(context.activity);
        ref.user = teamMember;

        await context.adapter.createConversation(ref,
            async (t1) => {
            const ref2 = TurnContext.getConversationReference(t1.activity);
            await t1.adapter.continueConversation(ref2, async (t2) => {
            await t2.sendActivity(message);
        });
    });
});

Вот информация, которую он возвращает:

teams channel account object

Если вы хотите сказать, сравнивайте названия компаний, вы можете получить доступ к свойствам teamMember.userPrincipalName или teamMember.email и сравнить часть электронных писем @ companyname.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...