0

我的目标是根据用户所在的页面触发 Microsoft Power Virtual Agent 服务中的特定聊天流。我还没有找到一种方法来自定义 Microsoft 服务,以便使用这些说明动态地从特定聊天主题开始,而不是一个固定的主题。

我想使用 jQuery 预填充动态生成的文本字段:

$('.webchat__send-box-text-box__input').val('red');

上面的代码在我看到“红色”这个词非常短暂地出现在文本框中,但随后它被生成输入字段的代码覆盖。如果我在加载完所有内容后从浏览器控制台手动运行上述脚本,它工作正常。

有没有办法自定义 Microsoft 网络聊天代码以让用户开始特定流程,或者我可以自动插入正确的单词,以便自动将用户带到相关聊天流程的开始?如果我可以在 webchat JS 代码中设置一个从一开始就设置主题的参数,那就太好了,但我没有找到任何说明表明这是可能的——只是一些基本的样式参数。

这是来自 Microsoft 的生成网络聊天界面的代码:

<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
  <script>
        const styleOptions = {
           // Add styleOptions to customize web chat canvas
           hideUploadButton: true
        };

        // Add your BOT ID below
        var BOT_ID = "[BOT ID VALUE REDACTED]";

        var theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
        const store = window.WebChat.createStore(
           {},
           ({ dispatch }) => next => action => {
               if (action.type === "DIRECT_LINE/CONNECT_FULFILLED") {
                  dispatch({
                      meta: {
                           method: "keyboard",
                       },
                       payload: {
                           activity: {
                                 channelData: {
                                      postBack: true,
                                 },
                                  //Web Chat will show the 'Greeting' System Topic message which has a trigger-phrase 'hello'
                                  name: 'startConversation',
                                  type: "event"
                             },
                        },
                        type: "DIRECT_LINE/POST_ACTIVITY",
                   });
             }
             return next(action);
          }
       );
       fetch(theURL)
            .then(response => response.json())
            .then(conversationInfo => {
                window.WebChat.renderWebChat(
                    {
                        directLine: window.WebChat.createDirectLine({
                            token: conversationInfo.token,
                        }),
                        store: store,
                        styleOptions: styleOptions
                    },
                    document.getElementById('webchat');
                );
            })
            .catch(err => console.error("An error occurred: " + err));
    </script>
4

0 回答 0