Zalo Personal(非官方)
状态:实验性功能。这个集成通过 zca-cli 自动化管理 Zalo 个人账号。
警告: 这是非官方集成,可能导致账号被暂停或封禁。使用风险自负。
需要安装 Plugin
Zalo Personal 以 Plugin 形式提供,不包含在核心安装中。
- 通过 CLI 安装:
openclaw plugins install @openclaw/zalouser - 或从源码安装:
openclaw plugins install ./extensions/zalouser - 详情:Plugins
前置要求:zca-cli
Gateway 机器必须在 PATH 中有 zca 可执行文件。
- 验证:
zca --version - 如果没有,安装 zca-cli(参考
extensions/zalouser/README.md或 zca-cli 官方文档)。
快速设置(新手)
- 安装 Plugin(见上文)。
- 登录(二维码方式,在 Gateway 机器上):
openclaw channels login --channel zalouser- 用 Zalo 手机 app 扫描终端中的二维码。
- 启用 Channel:
{
channels: {
zalouser: {
enabled: true,
dmPolicy: "pairing",
},
},
}
- 重启 Gateway(或完成引导流程)。
- DM 访问默认使用 Pairing 模式;首次联系时批准配对码。
这是什么
- 使用
zca listen接收入站消息。 - 使用
zca msg ...发送回复(文本/媒体/链接)。 - 专为”个人账号”使用场景设计,适用于无法使用 Zalo Bot API 的情况。
命名说明
Channel id 是 zalouser,明确表示这是自动化管理 Zalo 个人用户账号(非官方)。我们保留 zalo 用于未来可能的官方 Zalo API 集成。
查找 ID(目录)
使用目录 CLI 发现联系人/群组及其 ID:
openclaw directory self --channel zalouser
openclaw directory peers list --channel zalouser --query "name"
openclaw directory groups list --channel zalouser --query "work"
限制
- 出站文本会被分块为约 2000 字符(Zalo 客户端限制)。
- Streaming 默认被阻止。
访问控制(DM)
channels.zalouser.dmPolicy 支持:pairing | allowlist | open | disabled(默认:pairing)。
channels.zalouser.allowFrom 接受用户 ID 或名称。配置向导会在可用时通过 zca friend find 将名称解析为 ID。
批准方式:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
群组访问(可选)
- 默认:
channels.zalouser.groupPolicy = "open"(允许群组)。使用channels.defaults.groupPolicy在未设置时覆盖默认值。 - 限制为白名单:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(键是群组 ID 或名称)
- 阻止所有群组:
channels.zalouser.groupPolicy = "disabled"。 - 配置向导可以提示设置群组白名单。
- 启动时,OpenClaw 会将白名单中的群组/用户名称解析为 ID 并记录映射;无法解析的条目保持原样。
示例:
{
channels: {
zalouser: {
groupPolicy: "allowlist",
groups: {
"123456789": { allow: true },
"Work Chat": { allow: true },
},
},
},
}
多账号
账号映射到 zca profiles。示例:
{
channels: {
zalouser: {
enabled: true,
defaultAccount: "default",
accounts: {
work: { enabled: true, profile: "work" },
},
},
},
}
故障排除
找不到 zca:
- 安装 zca-cli 并确保它在 Gateway 进程的
PATH中。
登录状态不保持:
openclaw channels status --probe- 重新登录:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser