Как автоматически присоединиться к разговору в веб-чате Microsoft (бот-фреймворк) - PullRequest
0 голосов
/ 15 января 2019

Я использую https://github.com/Microsoft/BotFramework-WebChat/blob/master/README.md

Я хочу, чтобы бот получал сообщение "присоединиться" всякий раз, когда на сайте отображается виджет веб-чата.

Идея состоит в том, что человеку не нужно начинать разговор. Бот может ответить кому-либо, присоединившемуся к беседе, приветственным сообщением.

Как это возможно?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Эта «функция приветствия» долгое время обсуждалась и обсуждалась с момента появления Webchat v3. Похоже, что это было исправлено 2 дня назад с помощью этого запроса: https://github.com/Microsoft/BotFramework-WebChat/pull/1286

Вот пример того, как это сделать, расположенный здесь: https://github.com/Microsoft/BotFramework-WebChat/blob/master/samples/15.d.backchannel-send-welcome-event/index.html

В двух словах демо выглядит следующим образом:

  (async function () {
    // In this demo, we are using Direct Line token from MockBot.
    // To talk to your bot, you should use the token exchanged using your Direct Line secret.
    // You should never put the Direct Line secret in the browser or client app.
    // https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication
    const res = await fetch('https://webchat-mockbot.azurewebsites.net/directline/token', { method: 'POST' });
    const { token } = await res.json();

    // We are using a customized store to add hooks to connect event
    const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
      if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
        // When we receive DIRECT_LINE/CONNECT_FULFILLED action, we will send an event activity using WEB_CHAT/SEND_EVENT
        dispatch({
          type: 'WEB_CHAT/SEND_EVENT',
          payload: {
            name: 'webchat/join',
            value: { language: window.navigator.language }
          }
        });
      }
      return next(action);
    });

    window.WebChat.renderWebChat({
      directLine: window.WebChat.createDirectLine({ token }),
      store
    }, document.getElementById('webchat'));

    document.querySelector('#webchat > *').focus();
  })().catch(err => console.error(err));

Обратите внимание, что из-за того, что этот PR является довольно новым, он не встроен в релиз latest, поэтому вам нужно указать на master версию файла webchat.js, а не latest:

<script src="https://cdn.botframework.com/botframework-webchat/master/webchat.js"></script>

И это работает: ваша сторона бота уведомлена о деятельности типа Event, где вы сможете ответить своему пользователю, прежде чем он наберет что-нибудь:

demo

0 голосов
/ 15 января 2019

Вы можете проверить событие ActivityTypes.ConversationUpdate и отправить приветственное сообщение пользователю. См. Эту статью для подробных шагов - https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-send-welcome-message?view=azure-bot-service-4.0&tabs=csharp%2Ccsharpmulti%2Ccsharpwelcomeback

...