Почему у пользователей разные форматы идентификаторов между Microsoft Graph API и UserID в среде ботов? - PullRequest
0 голосов
/ 13 июня 2018

Я использовал 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;
});

Это вернуло бы пользователя с ID = 9422e847-0000-1111-2222-d39d550a4fb6

Но когда я использую Botbuilder-команды получать выборки участников, информация о пользователях которых возвращается с разным форматом идентификатора.Вот мой пример кода:

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;
                    }
                });
            }
        }
    }
);

Это вернуло бы пользователя, который имеет ID = 29: 1zJXjlM7ifjqawGVxXx_4xxx56BFCCIJWfPbWrVDSdxsKUhi9IXyXXYNLOKCLHodN7WgEzz31l5KZ * * *вернуть другой формат идентификатора?

Кроме того, моя цель состоит в том, чтобы я использовал идентификатор пользователя в адресе для Botbuilder, чтобы отправить личное сообщение пользователю.

1 Ответ

0 голосов
/ 13 июня 2018

Идентификатор пользователя не определен в Службе графов так же, как в Botbuilder.Идентификатор пользователя Botbuilder является ключом для данного пользователя, который подключен к беседе внутри бота (и имеет отношение только к контексту беседы с ботом), а userID в Graph Service является уникальным ключом идентификации для пользователя Azure.AD.

Это не тот же API или часть универсального соединителя, поэтому эти идентификаторы не пересекаются друг с другом.Многие люди создают своего рода словарь пользователей, чтобы их можно было искать и использовать соответственно в их приложении.

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