site token 调用 Connector API。
接口总览
| 能力 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 获取客服配置 | GET | /chat/config | 读取客服开关、名称、头像、语种等配置 |
| 发送访客消息 | POST | /chat/messages | 创建或延续会话,并返回 AI 回复 |
| 拉取会话消息 | GET | /chat/messages | 获取指定会话的新消息 |
| 查询在线状态 | GET | /chat/presence | 获取人工客服在线状态和轮询建议 |
通用请求头
| Header | 必填 | 说明 |
|---|---|---|
Authorization: Bearer <site_token> | 是 | 站点服务端 token,不能暴露到浏览器 |
Content-Type: application/json | 写接口必填 | 请求体格式 |
Idempotency-Key | 写接口建议 | 消息发送失败重试时避免重复入库 |
获取客服配置
Query 参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
locale | string | 否 | 当前页面语种,例如 zh-CN、en-US |
响应示例
发送访客消息
Body 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
conversationId | string / null | 否 | 已有会话 ID;新会话可传 null 或不传 |
message | string | 是 | 访客消息,1-4000 字符 |
locale | string | 否 | 消息语种 |
sourcePage | string | 否 | 当前页面路径 |
visitor.visitorId | string | 建议 | 访客稳定 ID |
visitor.name | string | 否 | 访客姓名 |
visitor.email | string | 否 | 邮箱 |
visitor.phone | string | 否 | 电话 |
visitor.company | string | 否 | 公司 |
visitor.wechat | string | 否 | 微信 |
visitor.whatsapp | string | 否 | |
visitor.country | string | 否 | 国家或地区 |
请求示例
响应示例
关键响应字段
| 字段 | 说明 |
|---|---|
conversationId | 会话 ID,后续发送消息和轮询消息都要携带 |
userMessageId | 本次访客消息 ID |
message | AI 回复消息 |
aiStatus | AI 状态,常见值:ok、provider_error、quota_insufficient、blocked |
usedFallback | 是否使用兜底回复 |
lead | 线索分析结果,可能包含意向分和联系方式状态 |
拉取会话消息
| Query 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
conversationId | string | 是 | 会话 ID |
after | string | 否 | 只返回该消息之后的新消息 |
查询在线状态
常见错误
| HTTP | 错误码 | 说明 |
|---|---|---|
400 | INVALID_REQUEST | 参数缺失或格式错误 |
401 | INVALID_TOKEN | token 无效 |
402 | INSUFFICIENT_QUOTA | SaaS 额度不足 |
409 | IDEMPOTENCY_CONFLICT | 同一个幂等键被不同请求体复用 |
429 | RATE_LIMITED | 请求过快,按 Retry-After 重试 |
实现注意事项
- 浏览器不要持有
site token,只访问客户站点自己的代理接口。 - 发送消息要带稳定的
Idempotency-Key,避免超时重试时生成重复回复。 - AI 不可用时,应展示简短兜底话术,不要输出知识库原文或系统提示词。
- 客户站点可以根据
suggestedMessageIntervalMs控制消息轮询频率。