Как вызвать настраиваемое приветственное сообщение от бота Dialogflow с помощью kommunicate.io? - PullRequest
2 голосов
/ 18 января 2020

Я только начал создавать бота с использованием 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 не работают в коде выполнения).

Ответы [ 2 ]

2 голосов
/ 24 января 2020

Когда новый диалог запускается и маршрутизируется через бота Dialogflow, Kommunicate запускает Default Welcome Intent, настроенный в консоли Dialogflow. Однако вы можете настроить приветственное сообщение и динамически настроить другое приветственное сообщение. Вы должны создать события в консоли 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 || {});

Вы можете динамически обновлять этот параметр при возникновении определенных событий на вашем веб-сайте. Этот параметр будет применяться ко всем новым разговорам, которые начались после обновления, т. Е. Разговор, начатый после обновления параметра, вызовет новое приветственное событие.

Кроме того, этот параметр можно использовать для отображения различных приветственных сообщений на разных страницах вашего веб-сайта.

Надеюсь, это поможет.

2 голосов
/ 18 января 2020

вы можете включить и настроить default welcome intent в DialogFlow, который Kommunicate запускает, когда разговор направляется через бота (например, при перезагрузке страницы и инициализации плагина Kommunicate).

Я не уверен Вы можете настроить страницу приветствия для каждой страницы, по крайней мере, нелегко.
Один из возможных способов - это передать некоторые пользовательские данные в DialogFlow

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

, который затем передается в webhook

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

Я думаю, что со временем это можно будет использовать для персонализации вашего приветственного сообщения.

...