Files
openclaw-skill/openclaw-knowhow-skill/output/openclaw-docs_data/pages/Zalo_Personal_unofficial_4299159d45.json
Selig 4c966a3ad2 Initial commit: OpenClaw Skill Collection
6 custom skills (assign-task, dispatch-webhook, daily-briefing,
task-capture, qmd-brain, tts-voice) with technical documentation.
Compatible with Claude Code, OpenClaw, Codex CLI, and OpenCode.
2026-03-13 10:58:30 +08:00

77 lines
6.0 KiB
JSON
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"title": "Zalo Personal (unofficial)",
"content": "Status: experimental. This integration automates a **personal Zalo account** via `zca-cli`.\n\n> **Warning:** This is an unofficial integration and may result in account suspension/ban. Use at your own risk.\n\nZalo Personal ships as a plugin and is not bundled with the core install.\n\n* Install via CLI: `openclaw plugins install @openclaw/zalouser`\n* Or from a source checkout: `openclaw plugins install ./extensions/zalouser`\n* Details: [Plugins](/plugin)\n\n## Prerequisite: zca-cli\n\nThe Gateway machine must have the `zca` binary available in `PATH`.\n\n* Verify: `zca --version`\n* If missing, install zca-cli (see `extensions/zalouser/README.md` or the upstream zca-cli docs).\n\n## Quick setup (beginner)\n\n1. Install the plugin (see above).\n2. Login (QR, on the Gateway machine):\n * `openclaw channels login --channel zalouser`\n * Scan the QR code in the terminal with the Zalo mobile app.\n3. Enable the channel:\n\n4. Restart the Gateway (or finish onboarding).\n5. DM access defaults to pairing; approve the pairing code on first contact.\n\n* Uses `zca listen` to receive inbound messages.\n* Uses `zca msg ...` to send replies (text/media/link).\n* Designed for “personal account” use cases where Zalo Bot API is not available.\n\nChannel id is `zalouser` to make it explicit this automates a **personal Zalo user account** (unofficial). We keep `zalo` reserved for a potential future official Zalo API integration.\n\n## Finding IDs (directory)\n\nUse the directory CLI to discover peers/groups and their IDs:\n\n* Outbound text is chunked to \\~2000 characters (Zalo client limits).\n* Streaming is blocked by default.\n\n## Access control (DMs)\n\n`channels.zalouser.dmPolicy` supports: `pairing | allowlist | open | disabled` (default: `pairing`).\n`channels.zalouser.allowFrom` accepts user IDs or names. The wizard resolves names to IDs via `zca friend find` when available.\n\n* `openclaw pairing list zalouser`\n* `openclaw pairing approve zalouser <code>`\n\n## Group access (optional)\n\n* Default: `channels.zalouser.groupPolicy = \"open\"` (groups allowed). Use `channels.defaults.groupPolicy` to override the default when unset.\n* Restrict to an allowlist with:\n * `channels.zalouser.groupPolicy = \"allowlist\"`\n * `channels.zalouser.groups` (keys are group IDs or names)\n* Block all groups: `channels.zalouser.groupPolicy = \"disabled\"`.\n* The configure wizard can prompt for group allowlists.\n* On startup, OpenClaw resolves group/user names in allowlists to IDs and logs the mapping; unresolved entries are kept as typed.\n\nAccounts map to zca profiles. Example:\n\n* Install zca-cli and ensure its on `PATH` for the Gateway process.\n\n**Login doesnt stick:**\n\n* `openclaw channels status --probe`\n* Re-login: `openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser`",
"code_samples": [
{
"code": "4. Restart the Gateway (or finish onboarding).\n5. DM access defaults to pairing; approve the pairing code on first contact.\n\n## What it is\n\n* Uses `zca listen` to receive inbound messages.\n* Uses `zca msg ...` to send replies (text/media/link).\n* Designed for “personal account” use cases where Zalo Bot API is not available.\n\n## Naming\n\nChannel id is `zalouser` to make it explicit this automates a **personal Zalo user account** (unofficial). We keep `zalo` reserved for a potential future official Zalo API integration.\n\n## Finding IDs (directory)\n\nUse the directory CLI to discover peers/groups and their IDs:",
"language": "unknown"
},
{
"code": "## Limits\n\n* Outbound text is chunked to \\~2000 characters (Zalo client limits).\n* Streaming is blocked by default.\n\n## Access control (DMs)\n\n`channels.zalouser.dmPolicy` supports: `pairing | allowlist | open | disabled` (default: `pairing`).\n`channels.zalouser.allowFrom` accepts user IDs or names. The wizard resolves names to IDs via `zca friend find` when available.\n\nApprove via:\n\n* `openclaw pairing list zalouser`\n* `openclaw pairing approve zalouser <code>`\n\n## Group access (optional)\n\n* Default: `channels.zalouser.groupPolicy = \"open\"` (groups allowed). Use `channels.defaults.groupPolicy` to override the default when unset.\n* Restrict to an allowlist with:\n * `channels.zalouser.groupPolicy = \"allowlist\"`\n * `channels.zalouser.groups` (keys are group IDs or names)\n* Block all groups: `channels.zalouser.groupPolicy = \"disabled\"`.\n* The configure wizard can prompt for group allowlists.\n* On startup, OpenClaw resolves group/user names in allowlists to IDs and logs the mapping; unresolved entries are kept as typed.\n\nExample:",
"language": "unknown"
},
{
"code": "## Multi-account\n\nAccounts map to zca profiles. Example:",
"language": "unknown"
}
],
"headings": [
{
"level": "h2",
"text": "Plugin required",
"id": "plugin-required"
},
{
"level": "h2",
"text": "Prerequisite: zca-cli",
"id": "prerequisite:-zca-cli"
},
{
"level": "h2",
"text": "Quick setup (beginner)",
"id": "quick-setup-(beginner)"
},
{
"level": "h2",
"text": "What it is",
"id": "what-it-is"
},
{
"level": "h2",
"text": "Naming",
"id": "naming"
},
{
"level": "h2",
"text": "Finding IDs (directory)",
"id": "finding-ids-(directory)"
},
{
"level": "h2",
"text": "Limits",
"id": "limits"
},
{
"level": "h2",
"text": "Access control (DMs)",
"id": "access-control-(dms)"
},
{
"level": "h2",
"text": "Group access (optional)",
"id": "group-access-(optional)"
},
{
"level": "h2",
"text": "Multi-account",
"id": "multi-account"
},
{
"level": "h2",
"text": "Troubleshooting",
"id": "troubleshooting"
}
],
"url": "llms-txt#zalo-personal-(unofficial)",
"links": []
}