嵌入第三方的参数

嵌入第三方的代码中,这个token是如何获取的?和API中生成的Chat ID有什么关系?
能否通过API获取一个chat对应的token?或者通过token获得chat id?

除了样例代码给出的参数外,还有哪些参数可以在嵌入第三方的时候调用或传递?

这个就是每个应用唯一的应用ID,默认没有提供工作流参数,这个是使用不同的嵌入模式的系统参数,如果你需要传递工作流的参数,在工作流中设置“接口传参”。

如果想让用户的所有问答会话(无论是API,网页,还是弹窗),都保持在一个chat中,该怎么做呢?

网页不可能所有用户保持在一个chat里,而且也不合理。
所有用户都用同一个对话ID意味着所有人都是同一个对话,别人可以获取到你的对话记录。

想把第三方应用程序生成的信息,传递给当前嵌入的网页或者浮框的对话框中,有什么办法吗?
使用API就会新建会话,出现和当前嵌入的界面中对话内容不一致的问题。

对话框是HTML页面元素,可以使用JavaScript脚本进行操作,在你的业务系统中嵌入Javascript脚本,通过JavaScript脚本获取当前业务系统的数据,并填入嵌入的MaxKB页面元素,具体的写法可以让AI给个参考示例。

能帮忙给个案例吗?
例如业务系统传递一个字符串值 “为什么一定要用MaxKB?” 给当前嵌入的网页或者浮框,并提交问题?

这可以问下AI,仔细描述出你的场景就行。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Iframe 示例</title>
</head>
<body>
    <!-- 嵌入的 iframe -->
    <iframe id="myIframe" src="your_iframe_page.html" width="600" height="400"></iframe>

    <!-- 自定义脚本 -->
    <script>
        // 等待 iframe 加载完成
        window.addEventListener('load', function () {
            // 获取 iframe 的 DOM 元素
            const iframe = document.getElementById('myIframe');
            const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

            // 定义要输入的内容
            const contentToInput = "这是自动输入的内容";

            // 等待 iframe 内部的 DOM 加载完成
            iframe.onload = function () {
                // 获取 iframe 内部的输入框元素(假设其 ID 是 123456)
                const inputBox = iframeDocument.getElementById('123456');

                if (inputBox) {
                    // 向输入框中输入内容
                    inputBox.value = contentToInput;
                } else {
                    console.error("未找到 ID 为 123456 的输入框");
                }
            };
        });
    </script>
</body>
</html>

主要依赖于JavaScript和页面元素定位。

// 获取文本框和发送按钮的元素
const textAreaElement = document.querySelector('.el-textarea__inner');
const sendBtnElement = document.querySelector('.sent-button');

// 模拟输入内容
textAreaElement.value = '你好,自动化测试内容!';

// 触发输入事件,确保文本框的值发生变化
const inputEvent = new Event('input', {
    bubbles: true,
    cancelable: true
});
textAreaElement.dispatchEvent(inputEvent);

// 检查按钮状态,确保它不是禁用状态
if (sendBtnElement.disabled) {
    sendBtnElement.disabled = false;  // 移除 disabled 属性
}

// 确保按钮是可见的并且没有被隐藏
if (sendBtnElement.style.display !== 'none' && sendBtnElement.offsetHeight !== 0 && sendBtnElement.offsetWidth !== 0) {
    // 模拟点击事件
    sendBtnElement.click();
} else {
    console.log("按钮不可见或被隐藏");
}

明白了。我试试看。
这样也就没有必要使用API,而直接在页面上控制操作了。
非常感谢!

使用AI给出的方法,怎么也获取不到文本框和按钮:

// 获取文本框和发送按钮的元素
const textAreaElement = document.querySelector(‘.el-textarea__inner’);
const sendBtnElement = document.querySelector(‘.sent-button’);

image

能否麻烦给个的确能运行的样例,获取到iframe中的输入框和发送按钮?

这个使用id定位的样例不能用,发现iframe内部的对象id是动态的。

这个只是样例,如果ID定位不到,你就用别的方式定位嘛,例如Xpath啥的,多试试别的定位方式。