【问题标题】:How to pass data from a website to a botframework web chat bot?如何将数据从网站传递到 botframework 网络聊天机器人?
【发布时间】:2017-11-07 16:57:05
【问题描述】:

我们正在构建一个 MS botframework 机器人,它将托管在我们控制的网站上。

有没有办法将会话 ID 从主机网站传递到网络聊天机器人小部件,以便在处理来自机器人内部的消息时可以访问它?

如果没有,是否可以访问此处描述的“t”令牌参数http://docs.botframework.com/connector/embed-chat-control/

谢谢

【问题讨论】:

    标签: c# botframework


    【解决方案1】:

    目前无法通过聊天控件执行此操作。

    如果您想要更紧密的集成,您应该考虑使用 DirectLIne API 并通过它构建您自己的 UX 体验。

    【讨论】:

      【解决方案2】:

      可以检索对话 ID,它在您的机器人的消息中可用。为此,您应该向 https://webchat.botframework.com/api/conversations 发出带有值“BOTCONNECTOR {您的安全代码}”的标头授权的 POST 请求

      您应该会收到新的令牌和 conversationId 作为结果或请求。该令牌用于创建 iframe 标签,conversationId 可用作您的会话令牌。

      【讨论】:

        【解决方案3】:

        使用 DirectLineBackchannel 可能会对您有所帮助。如果您滚动到最后一部分,您将在repo 的自述文件中找到信息。它允许网络聊天和主机可以发送/接收任何你想要的东西。

        <body onload="postLoadMessage()">
            <div id="BotChatGoesHere" class="wc-narrow"></div>
            <script src="botchat.js"></script>
            <script>
                var params = BotChat.queryParams(location.search);
                var user = { id: '***' };
                var bot = { id: '***' };
                window['botchatDebug'] = params['debug'] && params['debug'] === "true";
                var botConnection = new BotChat.DirectLine({
                    secret: '****',
                    token: params['t'],
                    domain: params['domain'],
                    webSocket: params['webSocket'] && params['webSocket'] === "true" // defaults to true
                });
                BotChat.App({
                    botConnection: botConnection,
                    user: user,
                    bot: bot
                }, document.getElementById("BotChatGoesHere"));
               
                //var x= whatever value you want to send;
                const postLoadMessage = () => {
                    botConnection
                        .postActivity({type: "event", value: x , from: {id: "me" }, name: "PageLoaded"})
                        .subscribe(id => console.log("success"));
                }
            </script>
        </body>
        

        上面给出的代码是我在加载带有机器人的页面时使用它发送值 x 的方式。

        我希望这会有所帮助:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-06-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-19
          • 1970-01-01
          相关资源
          最近更新 更多