我需要从机器人模拟器(https://github.com/microsoft/BotFramework-Emulator)发送特定的用户ID。我使用此文本框(请参见下图)
但是什么也没发送。活动中绝对有另一个向导。From.Id。
是否可以从模拟器发送带有特定用户ID的消息?
答案 0 :(得分:0)
简单的答案是,如果您使用Direct Line从机密生成令牌并在其中指定用户ID(请参阅附件代码),那么Emulator应该优先使用那个值而不是您使用的任何值通过仿真器设置传递。
在我的个人测试中,“用户ID”设置似乎覆盖了任何其他先前存在的值。
但是请注意,如果您在设置中指定了用户ID值,则需要关闭选项卡式对话,然后通过重新输入消息传递终结点和AppId / AppPassword(或重新连接到)重新开始。 bot文件(如果使用)。只需按“重新启动对话”,就不会使模拟器获得用户ID设置。
希望有帮助!
// 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');
}
});
});