Zalo Personal (неофициальный)

Статус: экспериментальный. Эта интеграция автоматизирует личную учетную запись Zalo через zca-cli.

Предупреждение: Это неофициальная интеграция и может привести к приостановке/бану учетной записи. Используйте на свой риск.

Требуется плагин

Zalo Personal поставляется как плагин и не входит в основную установку.

  • Установка через CLI: openclaw plugins install @openclaw/zalouser
  • Или из исходной копии: openclaw plugins install ./extensions/zalouser
  • Подробности: Плагины

Предварительное условие: zca-cli

На машине Gateway должен быть доступен бинарный файл zca в PATH.

  • Проверка: zca --version
  • Если отсутствует, установите zca-cli (см. extensions/zalouser/README.md или документацию upstream zca-cli).

Быстрая настройка (для начинающих)

  1. Установите плагин (см. выше).
  2. Вход (QR, на машине Gateway):
    • openclaw channels login --channel zalouser
    • Отсканируйте QR-код в терминале с помощью мобильного приложения Zalo.
  3. Включите канал:
{
  channels: {
    zalouser: {
      enabled: true,
      dmPolicy: "pairing"
    }
  }
}
  1. Перезапустите Gateway (или завершите онбординг).
  2. Доступ к личным сообщениям по умолчанию использует сопряжение; утвердите код сопряжения при первом контакте.

Что это такое

  • Использует zca listen для получения входящих сообщений.
  • Использует zca msg ... для отправки ответов (текст/медиа/ссылка).
  • Предназначено для случаев использования "личной учетной записи", где Zalo Bot API недоступен.

Именование

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).
  • Потоковая передача заблокирована по умолчанию.

Контроль доступа (личные сообщения)

channels.zalouser.dmPolicy поддерживает: pairing | allowlist | open | disabled (по умолчанию: pairing). channels.zalouser.allowFrom принимает ID пользователей или имена. Мастер разрешает имена в ID через zca friend find, когда доступно.

Утверждение через:

  • openclaw pairing list zalouser
  • openclaw 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. Пример:

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

Устранение неполадок

zca не найден:

  • Установите zca-cli и убедитесь, что он находится в PATH для процесса Gateway.

Вход не сохраняется:

  • openclaw channels status --probe
  • Повторный вход: openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser