Статус: експериментально. Ця інтеграція автоматизує особистий обліковий запис Zalo через нативний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.
zca-js усередині OpenClaw.
Вбудований plugin
Zalo Personal постачається як вбудований plugin у поточних релізах OpenClaw, тому звичайні пакетовані збірки не потребують окремого встановлення. Якщо ви використовуєте старішу збірку або спеціальне встановлення, яке виключає Zalo Personal, встановіть npm-пакет напряму:- Встановити через CLI:
openclaw plugins install @openclaw/zalouser - Закріплена версія:
openclaw plugins install @openclaw/zalouser@2026.5.2 - Або з checkout вихідного коду:
openclaw plugins install ./path/to/local/zalouser-plugin - Докладніше: Plugins
zca/openzca не потрібен.
Швидке налаштування (для початківців)
- Переконайтеся, що plugin Zalo Personal доступний.
- Поточні пакетовані релізи OpenClaw вже містять його.
- Старіші/спеціальні встановлення можуть додати його вручну за допомогою команд вище.
- Увійдіть (QR, на машині Gateway):
openclaw channels login --channel zalouser- Відскануйте QR-код мобільним застосунком Zalo.
- Увімкніть канал:
- Перезапустіть Gateway (або завершіть налаштування).
- Доступ до DM типово використовує спарювання; підтвердьте код спарювання під час першого контакту.
Що це таке
- Працює повністю в одному процесі через
zca-js. - Використовує нативні слухачі подій для отримання вхідних повідомлень.
- Надсилає відповіді напряму через JS API (текст/медіа/посилання).
- Призначено для сценаріїв використання “особистого облікового запису”, коли Zalo Bot API недоступний.
Іменування
Ідентифікатор каналу —zalouser, щоб явно вказати, що це автоматизує особистий обліковий запис користувача Zalo (неофіційно). Ми залишаємо zalo зарезервованим для можливої майбутньої офіційної інтеграції з Zalo API.
Пошук ID (каталог)
Використовуйте CLI каталогу, щоб знаходити співрозмовників/групи та їхні ID:Обмеження
- Вихідний текст ділиться на фрагменти приблизно по 2000 символів (обмеження клієнта Zalo).
- Потокове передавання типово заблоковане.
Контроль доступу (DM)
channels.zalouser.dmPolicy підтримує: pairing | allowlist | open | disabled (типово: pairing).
channels.zalouser.allowFrom має використовувати стабільні ID користувачів Zalo. Також може посилатися на статичні групи доступу відправників (accessGroup:<name>). Під час інтерактивного налаштування введені імена можна зіставити з ID за допомогою внутрішньопроцесного пошуку контактів plugin.
Якщо необроблене ім’я залишається в конфігурації, під час запуску воно зіставляється лише коли ввімкнено channels.zalouser.dangerouslyAllowNameMatching: true. Без цього явного ввімкнення перевірки відправників під час виконання працюють лише за ID, а необроблені імена ігноруються для авторизації.
Підтвердити через:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Доступ до груп (необов’язково)
- Типово:
channels.zalouser.groupPolicy = "open"(групи дозволені). Використовуйтеchannels.defaults.groupPolicy, щоб перевизначити типове значення, коли воно не задане. - Обмежте до allowlist за допомогою:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(ключами мають бути стабільні ID груп; імена зіставляються з ID під час запуску лише коли ввімкненоchannels.zalouser.dangerouslyAllowNameMatching: true)channels.zalouser.groupAllowFrom(керує тим, які відправники в дозволених групах можуть запускати бота; на статичні групи доступу відправників можна посилатися черезaccessGroup:<name>)
- Заблокувати всі групи:
channels.zalouser.groupPolicy = "disabled". - Майстер налаштування може запитувати allowlist для груп.
- Під час запуску OpenClaw зіставляє імена груп/користувачів в allowlist з ID і записує зіставлення в журнал лише коли ввімкнено
channels.zalouser.dangerouslyAllowNameMatching: true. - Зіставлення allowlist груп типово працює лише за ID. Нерозв’язані імена ігноруються для автентифікації, якщо не ввімкнено
channels.zalouser.dangerouslyAllowNameMatching: true. channels.zalouser.dangerouslyAllowNameMatching: true— це аварійний режим сумісності, який знову вмикає змінне зіставлення імен під час запуску та зіставлення назв груп під час виконання.- Якщо
groupAllowFromне задано, під час виконання для перевірок відправників у групах використовується fallback доallowFrom. - Перевірки відправника застосовуються як до звичайних групових повідомлень, так і до керувальних команд (наприклад
/new,/reset).
Обмеження згадок у групах
channels.zalouser.groups.<group>.requireMentionкерує тим, чи потрібна згадка для відповідей у групі.- Порядок розв’язання: точний id/назва групи -> нормалізований slug групи ->
*-> типово (true). - Це застосовується як до груп в allowlist, так і до режиму відкритих груп.
- Цитування повідомлення бота вважається неявною згадкою для активації в групі.
- Авторизовані керувальні команди (наприклад
/new) можуть обходити обмеження згадок. - Коли групове повідомлення пропускається через вимогу згадки, OpenClaw зберігає його як очікувану історію групи та додає до наступного обробленого групового повідомлення.
- Обмеження історії групи типово дорівнює
messages.groupChat.historyLimit(fallback50). Ви можете перевизначити його для кожного облікового запису черезchannels.zalouser.historyLimit.
Кілька облікових записів
Облікові записи зіставляються з профілямиzalouser у стані OpenClaw. Приклад:
Набір тексту, реакції та підтвердження доставки
- OpenClaw надсилає подію набору тексту перед відправленням відповіді (best-effort).
- Дія реакції на повідомлення
reactпідтримується дляzalouserу діях каналу.- Використовуйте
remove: true, щоб видалити певний emoji реакції з повідомлення. - Семантика реакцій: Reactions
- Використовуйте
- Для вхідних повідомлень, які містять метадані подій, OpenClaw надсилає підтвердження доставлено + переглянуто (best-effort).
Усунення несправностей
Вхід не зберігається:openclaw channels status --probe- Повторний вхід:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
- Використовуйте числові ID в
allowFrom/groupAllowFromі стабільні ID груп уgroups. Якщо вам навмисно потрібні точні імена друзів/груп, увімкнітьchannels.zalouser.dangerouslyAllowNameMatching: true.
- Приберіть будь-які старі припущення про зовнішній процес
zca. - Канал тепер повністю працює в OpenClaw без зовнішніх CLI-бінарників.
Пов’язане
- Огляд каналів — усі підтримувані канали
- Спарювання — автентифікація DM і процес спарювання
- Групи — поведінка групових чатів і обмеження згадок
- Маршрутизація каналів — маршрутизація сесій для повідомлень
- Безпека — модель доступу та посилення захисту