我是node.js的新手。 我在我的服务器上托管了下面的Webchat版本,并根据我的需要修改了直线键和语音API密钥。
https://github.com/Microsoft/BotFramework-WebChat/tree/master/samples/speech
这里的问题是,目前,我已经在下面的代码中硬编码了密钥,而不是我想要生成直接线令牌并传递它。
BotChat.App({
bot: bot,
locale: params['locale'],
resize: 'detect',
speechOptions: speechOptions,
user: user,
directLine: {
secret: 'my secret goes here',
webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
}
}, document.getElementById('BotChatGoesHere'));
如何实现这一目标?
提前致谢。
答案 0 :(得分:0)
您需要实现令牌刷新机制
curl -X POST \
https://directline.botframework.com/v3/directline/tokens/generate \
-H'授权:不记名direct_line_secret'\
-H'缓存控制:无缓存'\ -H'邮递员令牌:596bb603-b6f6-4802-c868-bb2055e7cd44'
您将获得如下所示的响应
您可以将令牌反馈到直接应用程序
{ “ conversationId”:“ 5pCw0I1VZxD64AZmNR624I”, “令牌”:“ lqBRp7neCNM.dAA.NQBwAEMAd.DtSAr-V81AE.8WGDZ-O0H4E.CT4ZIuIqHR1AvN8Byb0ewzF4eE”, “ expires_in”:1800}
Refer Here了解更多
答案 1 :(得分:-1)
您也可以使用npm的dotenv模块。
这允许您“隐藏”您的密钥,看起来像这样:
BotChat.App({
bot: bot,
locale: params['locale'],
resize: 'detect',
speechOptions: speechOptions,
user: user,
directLine: {
secret: process.env.DIRECT_LINE_SECRET,
webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
}
}, document.getElementById('BotChatGoesHere'));
希望有所帮助!