为什么用户在 Microsoft Graph API 和 bot 框架中的 UserIDs 之间有不同的 ID 格式?

Why do users have different ID formats between the Microsoft Graph API and UserIDs in bot framework?

我已经使用Graph Service通过电子邮件获取用户信息。这是我的示例代码:

var user = null;
const GraphService = require('graph-service');
const ClientCredentials = require('client-credentials');

const tenant = 'my-company.com';
const clientId = '0b13aa29-ca6b-42e8-a083-89e5bccdf141';
const clientSecret = 'lsl2isRe99Flsj32elwe89234ljhasd8239jsad2sl=';

const credentials = new ClientCredentials(tenant, clientId, clientSecret);

const service = new GraphService(credentials);

service.get('/users/tnguyen482@my-company.com').then(response => {
    user = response.data;
});

这会 return ID = 9422e847-0000-1111-2222-d39d550a4fb6

的用户

但是当我使用 Botbuilder-teams 获取成员时,其中的用户信息 return 具有不同格式的 ID。这是我的示例代码:

var user = null;

var teams = require("botbuilder-teams");
var connector = new teams.TeamsChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});

let conversationId = session.message.address.conversation.id;
var userEmail = "tnguyen482@my-company.com";

connector.connector.fetchMembers(
    "https://smba.trafficmanager.net/amer-client-ss.msg/",
    conversationId,
    (err, result) => {
        if (err) {
            console.log('Cannot get member of current conversation');
        }
        else {
            if (result.length > 0){
                result.forEach(function(item) {
                    if (item.email == userEmail){
                        user = item;
                    }
                });
            }
        }
    }
);

这将 return 具有 ID = 29:1zJXjlM7ifjqawGVxXx_4xxx56BFCCIJWfPbWrVDSdxsKUhi9IXyXXYNLOKCLHodN7WgEzz31lBKcZwtWvMzoUw

的用户

我的问题是为什么同一个用户用不同的方法检索数据return不同的 ID 格式?

此外,我的目的是使用地址中的用户ID,供botbuilder向用户发送个人消息。

用户 ID 在图形服务中的定义与在 Botbuilder 中的定义不同。 botbuilder userID 是连接到机器人对话的给定用户的密钥(并且仅在与机器人对话的上下文中相关),Graph Service 中的 userID 是 Azure 用户的唯一身份密钥AD.

这些 ID 不同 API 或通用连接器的一部分,因此这些 ID 不会相互交叉。许多人创建某种类型的用户字典,以便可以在他们的应用程序中相应地查找和使用 2。