Status:实验性。支持私信。下面的能力章节反映当前 Marketplace 机器人行为。Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
内置插件
Zalo 在当前 OpenClaw 版本中作为内置插件发布,因此正常的打包构建不需要单独安装。 如果你使用的是旧版构建,或排除了 Zalo 的自定义安装,请直接安装 npm 包:- 通过 CLI 安装:
openclaw plugins install @openclaw/zalo - 固定版本:
openclaw plugins install @openclaw/zalo@2026.5.2 - 或从源码检出安装:
openclaw plugins install ./path/to/local/zalo-plugin - 详情:插件
快速设置(初学者)
- 确保 Zalo 插件可用。
- 当前打包的 OpenClaw 版本已经内置它。
- 旧版/自定义安装可以使用上面的命令手动添加它。
- 设置令牌:
- 环境变量:
ZALO_BOT_TOKEN=... - 或配置:
channels.zalo.accounts.default.botToken: "..."。
- 环境变量:
- 重启 Gateway 网关(或完成设置)。
- 私信访问默认使用配对;首次联系时批准配对码。
它是什么
Zalo 是一款面向越南的消息应用;它的 Bot API 让 Gateway 网关可以运行用于一对一会话的机器人。 当你希望将支持或通知确定性路由回 Zalo 时,它很适合。 本页反映当前 OpenClaw 对 Zalo Bot Creator / Marketplace bots 的行为。 Zalo Official Account (OA) bots 是不同的 Zalo 产品界面,行为可能不同。- 由 Gateway 网关拥有的 Zalo Bot API 渠道。
- 确定性路由:回复会返回 Zalo;模型永远不会选择渠道。
- 私信共享智能体的主会话。
- 下面的能力章节展示当前 Marketplace 机器人支持情况。
设置(快速路径)
1. 创建机器人令牌(Zalo Bot Platform)
- 前往 https://bot.zaloplatforms.com 并登录。
- 创建新机器人并配置其设置。
- 复制完整机器人令牌(通常是
numeric_id:secret)。对于 Marketplace 机器人,可用的运行时令牌可能会在创建后的机器人欢迎消息中出现。
2. 配置令牌(环境变量或配置)
示例:groupPolicy 和 groupAllowFrom。对于当前 Marketplace 机器人行为,请参阅能力。
环境变量选项:ZALO_BOT_TOKEN=...(仅适用于默认账号)。
多账号支持:使用 channels.zalo.accounts,并为每个账号配置令牌和可选的 name。
- 重启 Gateway 网关。当解析到令牌(环境变量或配置)时,Zalo 会启动。
- 私信访问默认使用配对。机器人首次被联系时批准代码。
工作方式(行为)
- 入站消息会被标准化为带有媒体占位符的共享渠道信封。
- 回复始终路由回同一个 Zalo 聊天。
- 默认使用长轮询;可通过
channels.zalo.webhookUrl使用 webhook 模式。
限制
- 出站文本会按 2000 个字符分块(Zalo API 限制)。
- 媒体下载/上传受
channels.zalo.mediaMaxMb限制(默认 5)。 - 由于 2000 字符限制会降低流式传输的实用性,默认会阻止流式传输。
访问控制(私信)
私信访问
- 默认:
channels.zalo.dmPolicy = "pairing"。未知发送者会收到配对码;在批准前消息会被忽略(代码 1 小时后过期)。 - 通过以下方式批准:
openclaw pairing list zaloopenclaw pairing approve zalo <CODE>
- 配对是默认令牌交换。详情:配对
channels.zalo.allowFrom接受数字用户 ID(无可用的用户名查找)。
访问控制(群组)
对于 Zalo Bot Creator / Marketplace bots,群组支持在实践中不可用,因为机器人根本无法被加入群组。 这意味着下面这些群组相关配置键存在于 schema 中,但无法用于 Marketplace 机器人:channels.zalo.groupPolicy控制群组入站处理:open | allowlist | disabled。channels.zalo.groupAllowFrom限制哪些发送者 ID 可以在群组中触发机器人。- 如果未设置
groupAllowFrom,Zalo 会回退到allowFrom进行发送者检查。 - 运行时注意事项:如果完全缺少
channels.zalo,运行时仍会为安全起见回退到groupPolicy="allowlist"。
groupPolicy: "disabled"— 阻止所有群组消息。groupPolicy: "open"— 允许任何群组成员(受提及门控限制)。groupPolicy: "allowlist"— 默认失败关闭;仅接受允许的发送者。
长轮询与 webhook
- 默认:长轮询(不需要公共 URL)。
- Webhook 模式:设置
channels.zalo.webhookUrl和channels.zalo.webhookSecret。- Webhook 密钥必须为 8-256 个字符。
- Webhook URL 必须使用 HTTPS。
- Zalo 发送事件时会带上
X-Bot-Api-Secret-Token标头用于验证。 - Gateway 网关 HTTP 在
channels.zalo.webhookPath处理 webhook 请求(默认使用 webhook URL 路径)。 - 请求必须使用
Content-Type: application/json(或+json媒体类型)。 - 重复事件(
event_name + message_id)会在较短的重放窗口内被忽略。 - 突发流量会按路径/来源进行速率限制,并可能返回 HTTP 429。
支持的消息类型
如需快速支持情况快照,请参阅能力。以下注释会在行为需要额外上下文时补充细节。- 文本消息:完全支持,带 2000 字符分块。
- 文本中的普通 URL:行为与普通文本输入相同。
- 链接预览/富链接卡片:请参阅能力中的 Marketplace 机器人 Status;它们无法可靠触发回复。
- 图片消息:请参阅能力中的 Marketplace 机器人 Status;入站图片处理不可靠(显示输入指示器但没有最终回复)。
- 贴纸:请参阅能力中的 Marketplace 机器人 Status。
- 语音备注/音频文件/视频/通用文件附件:请参阅能力中的 Marketplace 机器人 Status。
- 不支持的类型:会被记录(例如,来自受保护用户的消息)。
能力
此表总结 OpenClaw 中当前 Zalo Bot Creator / Marketplace bot 行为。| 功能 | Status |
|---|---|
| 直接消息 | ✅ 支持 |
| 群组 | ❌ Marketplace 机器人不可用 |
| 媒体(入站图片) | ⚠️ 受限/请在你的环境中验证 |
| 媒体(出站图片) | ⚠️ 未针对 Marketplace 机器人重新测试 |
| 文本中的普通 URL | ✅ 支持 |
| 链接预览 | ⚠️ Marketplace 机器人不可靠 |
| 反应 | ❌ 不支持 |
| 贴纸 | ⚠️ Marketplace 机器人没有智能体回复 |
| 语音备注/音频/视频 | ⚠️ Marketplace 机器人没有智能体回复 |
| 文件附件 | ⚠️ Marketplace 机器人没有智能体回复 |
| 话题线程 | ❌ 不支持 |
| 投票 | ❌ 不支持 |
| 原生命令 | ❌ 不支持 |
| 流式传输 | ⚠️ 已阻止(2000 字符限制) |
交付目标(CLI/cron)
- 使用聊天 ID 作为目标。
- 示例:
openclaw message send --channel zalo --target 123456789 --message "hi"。
故障排除
机器人没有响应:- 检查令牌是否有效:
openclaw channels status --probe - 验证发送者已获批准(配对或 allowFrom)
- 检查 Gateway 网关日志:
openclaw logs --follow
- 确保 webhook URL 使用 HTTPS
- 验证密钥令牌为 8-256 个字符
- 确认 Gateway 网关 HTTP 端点可在配置的路径上访问
- 检查 getUpdates 轮询没有运行(它们互斥)
配置参考(Zalo)
完整配置:配置 扁平顶层键(channels.zalo.botToken、channels.zalo.dmPolicy 以及类似键)是旧版单账号简写。新配置优先使用 channels.zalo.accounts.<id>.*。这里仍记录两种形式,因为它们存在于 schema 中。
提供商选项:
channels.zalo.enabled:启用/禁用渠道启动。channels.zalo.botToken:来自 Zalo Bot Platform 的机器人令牌。channels.zalo.tokenFile:从常规文件路径读取令牌。符号链接会被拒绝。channels.zalo.dmPolicy:pairing | allowlist | open | disabled(默认:pairing)。channels.zalo.allowFrom:私信允许列表(用户 ID)。open需要"*"。向导会要求输入数字 ID。channels.zalo.groupPolicy:open | allowlist | disabled(默认:allowlist)。存在于配置中;关于当前 Marketplace 机器人行为,请参阅能力和访问控制(群组)。channels.zalo.groupAllowFrom:群组发送者允许列表(用户 ID)。未设置时回退到allowFrom。channels.zalo.mediaMaxMb:入站/出站媒体上限(MB,默认 5)。channels.zalo.webhookUrl:启用 webhook 模式(需要 HTTPS)。channels.zalo.webhookSecret:webhook 密钥(8-256 个字符)。channels.zalo.webhookPath:Gateway 网关 HTTP 服务器上的 webhook 路径。channels.zalo.proxy:API 请求的代理 URL。
channels.zalo.accounts.<id>.botToken:每账号令牌。channels.zalo.accounts.<id>.tokenFile:每账号常规令牌文件。符号链接会被拒绝。channels.zalo.accounts.<id>.name:显示名称。channels.zalo.accounts.<id>.enabled:启用/禁用账号。channels.zalo.accounts.<id>.dmPolicy:每账号私信策略。channels.zalo.accounts.<id>.allowFrom:每账号允许列表。channels.zalo.accounts.<id>.groupPolicy:每账号群组策略。存在于配置中;关于当前 Marketplace 机器人行为,请参阅能力和访问控制(群组)。channels.zalo.accounts.<id>.groupAllowFrom:每账号群组发送者允许列表。channels.zalo.accounts.<id>.webhookUrl:每账号 webhook URL。channels.zalo.accounts.<id>.webhookSecret:每账号 webhook 密钥。channels.zalo.accounts.<id>.webhookPath:每账号 webhook 路径。channels.zalo.accounts.<id>.proxy:每账号代理 URL。