Краткий ответ: если вы используете Direct Line для генерации токена из секрета и указали там идентификатор пользователя (см. Прилагаемый код), то эмулятор должен отдать предпочтение значению над любым значением, которое вы передаетев настройках эмулятора.
В моем личном тестировании настройка идентификатора пользователя, кажется, переопределяет любое другое ранее существующее значение.
Следует отметить, однако, что если вы укажетеЗначение ID пользователя в настройках, вам нужно закрыть диалог с вкладками и начать его заново, повторно введя конечную точку обмена сообщениями и AppId / AppPassword (или повторно подключившись к файлу .bot, если используется). Простое нажатие кнопки «Перезапустить разговор» не приведет к тому, что эмулятор заберет настройку идентификатора пользователя.
Надежда на помощь!
// Listen for incoming requests.
server.post('/directline/token', (req, res) => {
// userId must start with `dl_` for Direct Line enhanced authentication
const userId = (req.body && req.body.id) ? req.body.id : `dl_${ Date.now() + Math.random().toString(36) }`;
const options = {
method: 'POST',
uri: 'https://directline.botframework.com/v3/directline/tokens/generate',
headers: {
'Authorization': `Bearer ${ process.env.directLineSecret }`
},
json: {
user: {
Id: `${ userId }`
}
}
};
request.post(options, (error, response, body) => {
if (!error && response.statusCode < 300) {
res.send(body);
console.log('Someone requested a token...');
} else {
res.status(500).send('Call to retrieve token from DirectLine failed');
}
});
});