---
read_when:
  - 为 Fased 设置 Zalo Personal
  - 调试 Zalo Personal 登录或消息流程
summary: 通过 zca-cli（QR 登录）支持 Zalo 个人账户、功能和配置
title: Zalo Personal
x-i18n:
  generated_at: "2026-02-03T07:44:34Z"
  model: claude-opus-4-5
  provider: pi
  source_hash: 2a249728d556e5cc52274627bdaf390fa10e815afa04f4497feb57a2a0cb9261
  source_path: channels/zalouser.md
  workflow: 15
---

# Zalo Personal（非官方）

状态：实验性。此集成通过 `zca-cli` 自动化**个人 Zalo 账户**。

> **警告：**这是一个非官方集成，可能导致账户被暂停/封禁。使用风险自负。

## 需要插件

Zalo Personal 作为插件提供，不包含在核心安装中。

- 通过 CLI 安装：`fased plugins install @fased/zalouser`
- 或从源码检出安装：`fased plugins install ./extensions/zalouser`
- 详情：[插件](/tools/plugin)

## 前置条件：zca-cli

Gateway 网关机器必须在 `PATH` 中有可用的 `zca` 二进制文件。

- 验证：`zca --version`
- 如果缺失，请安装 zca-cli（参见 `extensions/zalouser/README.md` 或上游 zca-cli 文档）。

## 快速设置（新手）

1. 安装插件（见上文）。
2. 登录（QR，在 Gateway 网关机器上）：
   - `fased channels login --channel zalouser`
   - 用 Zalo 手机应用扫描终端中的二维码。
3. 启用渠道：

```json5
{
  channels: {
    zalouser: {
      enabled: true,
      dmPolicy: "pairing",
    },
  },
}
```

4. 重启 Gateway 网关（或完成新手引导）。
5. 私信访问默认为配对模式；首次联系时批准配对码。

## 这是什么

- 使用 `zca listen` 接收入站消息。
- 使用 `zca msg ...` 发送回复（文本/媒体/链接）。
- 专为"个人账户"使用场景设计，适用于 Zalo Bot API 不可用的情况。

## 命名

渠道 ID 为 `zalouser`，以明确表示这是自动化**个人 Zalo 用户账户**（非官方）。我们保留 `zalo` 用于未来可能的官方 Zalo API 集成。

## 查找 ID（目录）

使用目录 CLI 发现联系人/群组及其 ID：

```bash
fased directory self --channel zalouser
fased directory peers list --channel zalouser --query "name"
fased directory groups list --channel zalouser --query "work"
```

## 限制

- 出站文本分块为约 2000 字符（Zalo 客户端限制）。
- 默认阻止流式传输。

## 访问控制（私信）

`channels.zalouser.dmPolicy` 支持：`pairing | allowlist | open | disabled`（默认：`pairing`）。
`channels.zalouser.allowFrom` 接受用户 ID 或名称。向导会在可用时通过 `zca friend find` 将名称解析为 ID。

通过以下方式批准：

- `fased pairing list zalouser`
- `fased pairing approve zalouser <code>`

## 群组访问（可选）

- 默认：`channels.zalouser.groupPolicy = "open"`（允许群组）。使用 `channels.defaults.groupPolicy` 在未设置时覆盖默认值。
- 通过以下方式限制为允许列表：
  - `channels.zalouser.groupPolicy = "allowlist"`
  - `channels.zalouser.groups`（键为群组 ID 或名称）
- 阻止所有群组：`channels.zalouser.groupPolicy = "disabled"`。
- 配置向导可以提示输入群组允许列表。
- 启动时，Fased 将允许列表中的群组/用户名称解析为 ID 并记录映射；未解析的条目保持原样。

示例：

```json5
{
  channels: {
    zalouser: {
      groupPolicy: "allowlist",
      groups: {
        "123456789": { allow: true },
        "Work Chat": { allow: true },
      },
    },
  },
}
```

## 多账户

账户映射到 zca 配置文件。示例：

```json5
{
  channels: {
    zalouser: {
      enabled: true,
      defaultAccount: "default",
      accounts: {
        work: { enabled: true, profile: "work" },
      },
    },
  },
}
```

## 故障排除

**找不到 `zca`：**

- 安装 zca-cli 并确保它在 Gateway 网关进程的 `PATH` 中。

**登录不保持：**

- `fased channels status --probe`
- 重新登录：`fased channels logout --channel zalouser && fased channels login --channel zalouser`
