2

我刚刚开始使用 dialogflow 和 kommunicate.io 创建一个机器人。因此,我创建了一个简单的机器人并将其与 kommunicate 集成,最后将 kommunicatesettings 脚本复制到我的 HTML 页面中。我能够从机器人获得简单的响应。但现在我想为每个 HTML 页面设置不同的欢迎信息。那么这可以使用 kommunicatesettings 来完成吗?我试过了 :

    var kommunicateSettings = {"appId":"7519ee060abee2b532e8565aa0527ae","popupWidget":true,"automaticChatOpenOnNavigation":true, 
             "appSettings": {
                    "chatWidget": {
                      "popup": true           
                    },
                    "chatPopupMessage": [{
                      "message": "Wanna ask something related to "+document.title+ "?", 
                      "delay": 3000                    
                    }],

                    "text": {
                       "text": ["My welcome message!"]
                   }
                  }

    };
    var s = document.createElement("script"); s.type = "text/javascript"; s.async = true;
    s.src = "https://widget.kommunicate.io/v2/kommunicate.app";
    var h = document.getElementsByTagName("head")[0]; h.appendChild(s);
    window.kommunicate = m; m._globals = kommunicateSettings;
  })(document, window.kommunicate || {});

设置中的“文本”。但它什么也做不了。

我想在欢迎消息中只显示文档标题。因此,如果一些用于实现的 nodejs 代码可以做到这一点,那就没问题(document.title 和 window.location 在实现代码中不起作用)。

4

2 回答 2

2

您可以启用和自定义default welcome intent在对话通过机器人路由时 Kommunicate 触发的 in DialogFlow(例如在页面重新加载和 Kommunicate 插件的初始化时)。

我不确定您是否可以为每个页面自定义欢迎页面,至少不容易。
尝试的一种方法是将一些自定义数据传递给 DialogFlow

var chatContext = {
"key1":"value1",
"key2":"value2"
}
Kommunicate.updateSettings({"KM_CHAT_CONTEXT":chatContext})

然后将其传递给 webhook

"originalDetectIntentRequest": {
"payload": {
 "key1": "value1",
 "key2": "value2"
 }
} 

我认为它最终可以用来个性化您的欢迎信息。

于 2020-01-18T19:54:48.477 回答
2

当新对话开始并通过 Dialogflow 机器人进行路由时,Kommunicate 会触发Default Welcome IntentDialogflow 控制台中配置的内容。但是,您可以自定义欢迎消息并为您的对话动态设置不同的欢迎消息。您必须在 Dialogflow 控制台上创建事件并在customWelcomeEvent参数中传递事件。以下是完整的脚本:

(function (d, m) {
    var kommunicateSettings = {
        "appId": "your-app-Id", 
        onInit: function (status, data) {
            if (status == "success") { 
                Kommunicate.updateSettings({ "customWelcomeEvent": "welcome_event_for_home_page" }); 
            }
        }
    };
    var s = document.createElement("script"); s.type = "text/javascript"; s.async = true;
    s.src = "https://widget.kommunicate.io/v2/kommunicate.app";
    var h = document.getElementsByTagName("head")[0]; h.appendChild(s);
    window.kommunicate = m; m._globals = kommunicateSettings;
})(document, window.kommunicate || {});

当您的网站上发生某些事件时,您可以动态更新此设置。此设置将应用于更新后开始的所有新对话,即更新设置后开始的对话将触发新的欢迎事件。

此外,此设置可用于在您网站的不同页面上显示不同的欢迎消息。

我希望它有所帮助。

于 2020-01-24T09:44:56.487 回答