在客户端动态更改DirectLine密钥

时间:2018-03-29 10:14:55

标签: javascript botframework

机器人是在页面加载时设置的,但我们从应用程序收到一个秘密,并希望将机密信息放入机器人中。

以下是当前设置:

const initialBotConnection = new BotChat.DirectLine({ secret: 'secret1', });

initialBotConnection.activity$
    .filter(activity => activity.type === "event")
    .subscribe(activity => changeBotConnection(activity.value))

const changeSecret = () => {
    initialBotConnection
        .postActivity({
            type: "event",
            value: "GetSecret",
            from: { id: "me" }
        })
        .subscribe(id => console.log("success"));
}
changeSecret();

function changeBotConnection(secret) {
    if (secret != "GetSecret") {
        console.log("secret is " + secret);
        initialBotConnection.secret = secret;
    }
    if (secret == "NONE")
        chatOffline();
}

BotChat.App({
    user: { id: 'You' },
    bot: { id: 'botName' },
    resize: 'detect',
    botConnection: initialBotConnection
}, document.getElementById("bot"));

是否可以重新初始化聊天?我们有一个initateChat函数,但是放置BotChat.App代码并不起作用,实际上它打破了僵尸程序。看起来BotChat.App代码需要在函数之外吗?

感谢您的任何指示。

0 个答案:

没有答案