【问题标题】:How to automatically join conversation in Microsoft web chat (bot framework)如何在 Microsoft 网络聊天中自动加入对话(机器人框架)
【发布时间】:2019-01-15 08:10:43
【问题描述】:

我正在使用https://github.com/Microsoft/BotFramework-WebChat/blob/master/README.md

我希望机器人在网站上显示网络聊天小部件时收到“加入”消息。

这个想法是人类不必发起对话。机器人可以用欢迎消息回复加入对话的人。

这怎么可能?

【问题讨论】:

  • 您使用的是最新版本的网络聊天吗?

标签: javascript botframework web-chat


【解决方案1】:

自 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 版本中,所以你必须指向 webchat.js 文件的 master 版本,而不是 latest

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

它正在工作:您的机器人端收到Event 类型的活动通知,您可以在他输入任何内容之前回复您的用户:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多