跳到主要内容

官网嵌入

Widget Embed(官网嵌入咨询框)

先在 Console 创建渠道并复制公开嵌入标识,再把 Widget 留在你自己的官网页面里。

适合谁能修改官网或落地页、希望保留自有站内体验的团队
解决动作创建渠道、复制公开标识并粘贴嵌入脚本
下一步发布页面后验证 config 请求和访客提交
浏览器标识仅使用公开嵌入标识
不要使用API Key、私有 bearer 或管理凭证
步骤 01创建渠道
步骤 02复制标识
步骤 03嵌入验证

Widget Embed 适用于“能改自己官网/落地页”的团队:入口留在你的页面里,但接待、路由、供给承接与审计仍回到平台接入层。

提示能力状态

受控开放 Widget 运行时可公开加载;创建渠道、复制公开嵌入标识与生产使用仍需通过 Console 的正式流程完成。

如果你只是想最快验证需求且暂时不改网站,先看 Hosted Inbox

提示嵌入前先确认三件事
  • 你能修改目标页面的 HTML、CMS 或前端组件。
  • 你已经从 Console 复制了可公开嵌入的 Channel 标识,而不是 API Key。
  • 你的 CSP 允许 Widget 脚本与 Console public endpoint 正常工作。

推荐阅读

登录 Console → 创建 → 复制 → 粘贴 → 验证

Hosted Widget 把入口留在你的页面,平台继续负责承接。

说明这条路径的交付结果

完成后,你的页面会拥有一个由平台承接的悬浮咨询入口;访客无需离开当前站点,线索由平台负责接待、路由与后续承接。浏览器只使用可公开嵌入的 Channel 标识,不暴露 API Key 或私有 bearer。

create → copy → paste → verify 快速上线

  1. create: 打开 https://console.zhenrobot.com/start 并完成登录,在 https://console.zhenrobot.com/integrations 创建或选择渠道。
  2. copy: 在渠道的 Console 操作中点击复制公开嵌入标识;复制的是可放入浏览器的公开值,不是域名验证结果,也不是 API Key。
  3. paste: 将下面 snippet 粘贴到目标页面的 </body> 前,并把复制的公开嵌入标识原样填入 data-channel-id
  4. verify: 发布页面;看到悬浮入口,并在 Network 中看到 config 请求,即表示入口已加载。

域名验证用于确认你能控制要部署 Widget 的站点;它不会生成、替代或修改 snippet 中的公开嵌入标识。完成域名验证后,仍要回到 Integrations 复制公开嵌入标识并粘贴到页面。

嵌入时该用哪个标识?

复制 Console 的公开嵌入标识,并原样填入 data-channel-id。它不是 API Key,也不是你在管理页面看到的内部渠道主键。

手机上可左右滑动查看完整对照。

你看到的名称出现位置用途可以放进浏览器吗?
管理 Channel IDConsole 的渠道管理与受控管理接口管理、配置与审计时定位渠道否;不要把管理凭证或内部标识写进页面
公开嵌入标识Console 复制按钮Widget snippet 的 data-channel-id是;这是唯一需要复制到页面的值
channelKeyCore public API:/api/public/channels/{channelKey}/…Core 协议公开路由中的参数名当前 Widget MVP 中与公开嵌入标识承载同一公开值;仍从 Console 复制,不要自行拼接
channelIdConsole public proxy:/api/public/widget/{channelId}/… 与 snippet 属性Console 代理路由和嵌入脚本的参数名当前 Widget MVP 中与 channelKey 承载同一公开值

只记一条: 页面只放 Console 复制的公开嵌入标识;绝不放 API Key、私有 bearer、管理凭证或自行猜测的渠道 ID。

<script
src="https://console.zhenrobot.com/embed/c2ai2x-widget.js"
data-channel-id="<YOUR_PUBLIC_CHANNEL_ID>"
async
></script>
提示只需要这一段公开标识

浏览器只使用 Console 复制的公开 Channel 标识。不要在页面、CMS 或前端代码中放入 API Key、私有 bearer 或管理凭证。

你需要准备什么

  • 一个要放入口的页面(官网 / 活动落地页 / 产品页)
  • 能在页面里插入一段 <script>(或在你的前端框架里动态加载脚本)
  • 一个已创建的渠道
  • 一个从 Console 复制的可公开嵌入 Channel 标识

1) 登录、创建渠道并复制公开标识

从 Console 开始页进入:

  • 开始入口:https://console.zhenrobot.com/start
  • 渠道管理:https://console.zhenrobot.com/integrations

完成登录后,在 Integrations 创建渠道,或选择一个已有渠道。复制 Console 提供的公开嵌入标识,并将它保存在部署变量中;不要把 API Key 或私有 bearer 放进浏览器。

如果公开配置请求返回 404,先在 Integrations 确认复制的是当前渠道的公开嵌入标识,再检查脚本属性和 CSP。

2) 用一段脚本完成嵌入

把下面这段放到页面 </body> 之前即可:

<script
src="https://console.zhenrobot.com/embed/c2ai2x-widget.js"
data-channel-id="<YOUR_PUBLIC_CHANNEL_ID>"
async
></script>

说明:

  • data-channel-id:必填,填从 Console 复制的公开 Channel 标识
  • src:固定指向 console 的 widget 运行时脚本

3) 按页面需要调整入口

<script
src="https://console.zhenrobot.com/embed/c2ai2x-widget.js"
data-channel-id="<YOUR_PUBLIC_CHANNEL_ID>"
data-launcher-label="开始咨询"
data-default-open="false"
async
></script>
  • data-launcher-label:悬浮按钮文案(默认 AI 咨询
  • data-default-open:是否默认展开(true/false,或 1/0

高级参数(仅在特殊环境需要):

  • data-console-origin:当你需要把请求指向非默认 console origin 时使用(默认取脚本 src 的 origin)

4) 在 React / Next.js 中挂载

AI 接入指令

让 AI 帮你挂载 Widget

复制后交给 Claude Code、Cursor 或 Codex。

请先阅读当前项目,确认技术栈与现有页面结构。

目标:将 C2AI2X Widget 安全挂载到现有站点。

准备:
1. 登录 https://console.zhenrobot.com/start,在 Integrations 创建或选择渠道。
2. 从 Console 复制真实的公开嵌入 Channel 标识;不要使用 API Key、私有 bearer 或管理 Channel ID。
3. 在合适页面只注入一次 https://console.zhenrobot.com/embed/c2ai2x-widget.js,并将公开标识填入 data-channel-id。
4. 若站点使用 CSP,允许 script-src 与 connect-src 访问 https://console.zhenrobot.com。
5. 将真实 chkey_… 公开标识替换到 data-channel-id;<YOUR_PUBLIC_CHANNEL_ID> 仅为示例,绝不能直接发布。
6. 使用无痕窗口访问实际站点,确认悬浮入口出现、config 请求返回 200,并发送一条测试咨询。
7. 若 config 非 200,输出实际状态码、响应体、CSP 控制台报错和脚本注入位置;不得改动现有鉴权、路由或业务逻辑。

请列出修改文件与验证结果。

只使用 Console 复制的公开嵌入标识。

原则:只加载一次;路由切换不要重复注入脚本。

import { useEffect } from "react";

export function C2ai2xWidget() {
useEffect(() => {
if (document.querySelector('script[data-zhen-widget-hosted="true"]')) return;

const script = document.createElement("script");
script.src = "https://console.zhenrobot.com/embed/c2ai2x-widget.js";
script.async = true;
script.setAttribute("data-zhen-widget-hosted", "true");
script.setAttribute("data-channel-id", "<YOUR_PUBLIC_CHANNEL_ID>");
script.setAttribute("data-launcher-label", "开始咨询");
document.body.appendChild(script);

return () => script.remove();
}, []);

return null;
}

5) 用 Network 面板验证请求

Widget 运行在你的页面中,但会向 console 的 public 接口发起请求(跨域、无需你自己带 cookie):

  • GET /api/public/widget/{publicChannelId}/config
  • POST /api/public/widget/{publicChannelId}/intake
  • 部分模式下会使用 EventSource 做流式读取(同样走 public endpoint,具体 URL 以 config 返回为准)

如果浏览器 Network 中看不到 config 请求,优先检查脚本地址、公开 Channel 标识和 CSP;如果 config 成功但提交失败,再检查 intake 请求的状态码与响应体。

推荐阅读

排障时按这个顺序检查

6) CSP 与安全配置

如果你的站点启用了严格 CSP,至少需要考虑:

  • script-src 允许 https://console.zhenrobot.com
  • connect-src 允许 https://console.zhenrobot.com(含 fetchEventSource
  • Widget 会动态插入 <style>(Shadow DOM 内),严格策略下 style-src 可能需要允许 inline(或为该脚本提供 nonce/hash 方案)

注意:Widget 不需要你把 API Key 放到前端,也不应该把任何私有 bearer 暴露给浏览器。

7) 什么时候升级到 Full API

Widget 适合把入口“放回自己页面”并跑通咨询与承接闭环;当你需要把结果、状态、审计或事件写回你的系统,再进入 API 规范与接入评估

接入辅助服务

卡在接入环节?我们可以协助完成。

¥399 / 站点 / 案例

适合需要脚本挂载、公开标识确认或 CSP 基础排错协助的团队。

标准交付
  • 确认接入路径
  • 协助生成或挂载入口
  • 一次基础联调与上线前检查
服务边界
  • 不包含复杂定制与长期运营
  • 不代管私有凭证或生产权限
  • 不包含完整 API 项目实施
邮件联系 yan.gu@zhenrobot.com邮件请附上站点地址、目标接入方式、技术栈和当前阻塞点。

推荐阅读

接入完成后继续