使用教程
- 注册/登录平台,进入“我的站点”创建站点
- 获取 API Key 与嵌入代码
- 在你的网站
<head>
中粘贴代码并可选配置访客标识与昵称
1. 嵌入脚本
将以下代码放入你网站的 <head>
,用实际域名与 API KEY 替换:
<script>
// 可选:在加载脚本之前设置访客标识与昵称,用于去重与显示window.OCS = {
externalId: 'user_12345', // 同一用户固定此ID nickname: '王小明' // 将显示在窗口标题/后台};
</script>
<script>(function(){
var s=document.createElement('script');
s.src='http://www.chatgonow.com/api/widget.js?key=YOUR_API_KEY';
s.async=true;document.head.appendChild(s);
})();</script>
2. 主题与样式
在"我的站点"里可自定义:
- 主题主色、文字色、窗口顶部颜色
- 主题风格:Classic / Minimal / Bubble
- 按钮位置:左下角 / 右下角
- 欢迎语
3. 图片上传与文本发送
访客窗口支持发送文字与图片(png/jpg/gif),图片会安全地上传到平台并在后台与访客侧展示。
4. 消息速率限制
可在"我的站点"设置每分钟最多消息数,用于防止刷屏。超过阈值将提示"发送过于频繁"。
Chat API 频率限制说明:获取消息与回复消息使用相同阈值,但分别独立计数(互不占用额度)。
5. 访客去重
系统会优先使用 window.OCS.externalId
去重;未设置时自动在本地 Cookie/LocalStorage 生成并复用一个 ocs_external_id
。同一站点下相同 externalId 视为同一访客。
6. 客服工作台
登录后在"我的站点"进入在线聊天工作台,实时查看访客会话、发送文字/图片、查看未读红点。
7. 开放 API
我们提供简单易用的接口,便于你将聊天数据整合到内部系统。
- 最近 50 条消息(按站点):GET
/api/chat_api.php?action=get_recent_messages&key=CHAT_API_KEY
- 以客服身份回复会话:POST
/api/chat_api.php?action=reply_as_agent&key=CHAT_API_KEY
- 重要:有两类 API Key,请注意区分:
- 在线客服API_key(widget):用于在客户站点嵌入在线客服脚本
- 聊天API_key(chat):用于调用开放 API(获取消息/客服回复)
API 字段说明
获取消息API返回字段:
字段名 | 类型 | 说明 |
---|---|---|
conversation_id |
string | 会话ID,用于标识对话 |
sender_type |
string | 发送者类型:visitor(访客)或 agent(客服) |
sender_user_id |
string | 发送者ID,访客为随机ID,客服为API Key |
message_type |
string | 消息类型:text(文本)或 image(图片) |
content |
string | 消息内容,图片消息时为空 |
image_url |
string|null | 图片URL,仅图片消息时有值 |
created_at |
string | 消息创建时间(格式:YYYY-MM-DD HH:MM:SS) |
客服回复API请求字段:
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
conversation_id |
integer | ✓ | 会话ID |
content |
string | ✓* | 回复内容(与image_base64二选一) |
image_base64 |
string | ✓* | Base64编码的图片(与content二选一) |
agent_name |
string | - | 客服名称,默认为"客服" |
* 表示 content 和 image_base64 必须提供其中一个
示例
1. 获取最近消息
请求示例
curl "http://www.chatgonow.com/api/chat_api.php?action=get_recent_messages&key=CHAT_API_KEY"
成功响应示例:
响应数据
{
"success": true,
"data": [
{
"conversation_id": "123",
"sender_type": "visitor",
"sender_user_id": "visitor_abc123",
"message_type": "text",
"content": "你好,我想咨询一下产品价格",
"image_url": null,
"created_at": "2024-01-15 14:30:25"
},
{
"conversation_id": "123",
"sender_type": "agent",
"sender_user_id": "chat_xyz789",
"message_type": "text",
"content": "您好!很高兴为您服务,请问您想了解哪个产品的价格?",
"image_url": null,
"created_at": "2024-01-15 14:31:10"
},
{
"conversation_id": "124",
"sender_type": "visitor",
"sender_user_id": "visitor_def456",
"message_type": "image",
"content": "",
"image_url": "/uploads/chat_images/visitor_20240115_143200.jpg",
"created_at": "2024-01-15 14:32:00"
}
]
}
错误响应示例:
错误响应
// 缺少API Key{
"success": false,
"message": "missing key"
}
// 无效的API Key{
"success": false,
"message": "invalid key"
}
// 请求过于频繁{
"success": false,
"message": "too many requests, wait 3s"
}
2. 客服回复
请求示例
curl -X POST "http://www.chatgonow.com/api/chat_api.php?action=reply_as_agent&key=CHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"conversation_id":123,"content":"您好,我们已收到您的消息","agent_name":"客服小王"}'
成功响应示例:
响应数据
{
"success": true
}
错误响应示例:
错误响应
// 缺少API Key{
"success": false,
"message": "missing key"
}
// 无效的API Key{
"success": false,
"message": "invalid key"
}
// 会话不存在{
"success": false,
"message": "conversation not found"
}
// 内容为空{
"success": false,
"message": "empty content"
}