Zalo Personal(個人アカウント)でOpenClawを使うイメージ

【最新版】Zalo PersonalでOpenClawを使う方法(非公式:個人アカウント自動化)

Zalo Personal

Zalo Personal(非公式)

ステータス:experimental。この連携は、OpenClaw 内のネイティブ zca-js を使って個人のZaloアカウントを自動化します。

警告: これは非公式の連携であり、アカウント停止/凍結(ban)につながる可能性があります。自己責任で使用してください。

プラグインが必要

Zalo Personal はプラグインとして提供されており、コアインストールには同梱されていません。

  • CLIでインストール:openclaw plugins install @openclaw/zalouser
  • ソースチェックアウトから:openclaw plugins install ./extensions/zalouser
  • 詳細: Plugins

外部の zca / openzca CLI バイナリは不要です。

クイックセットアップ(初心者向け)

  1. プラグインをインストールします(上記参照)。
  2. ログインします(Gateway マシン上で QR を表示します):
    • openclaw channels login --channel zalouser
    • Zalo モバイルアプリで QR コードをスキャンします。
  3. チャネルを有効化します:
{
  channels: {
    zalouser: {
      enabled: true,
      dmPolicy: "pairing",
    },
  },
}
  1. Gateway を再起動します(またはセットアップを完了します)。
  2. DM のアクセス制御はデフォルトで pairing です。最初の接触で出るペアリングコードを承認してください。

これは何?(What it is)

  • zca-js により、すべてがプロセス内で動作します。
  • 受信メッセージはネイティブのイベントリスナーで受け取ります。
  • 返信は JS API で直接送信します(text/media/link)。
  • Zalo Bot API が使えない「個人アカウント」ユースケース向けに設計されています。

命名(Naming)

チャンネルIDは zalouser で、非公式の「個人Zaloユーザーアカウント自動化」であることを明示しています。zalo は将来の公式 Zalo API 連携のために予約されています。

IDの探し方(ディレクトリ)

directory CLI で peer/group とその ID を見つけます:

openclaw directory self --channel zalouser
openclaw directory peers list --channel zalouser --query "name"
openclaw directory groups list --channel zalouser --query "work"

制限(Limits)

  • 送信テキストは約 2000 文字で分割されます(Zalo クライアント制限)。
  • ストリーミングはデフォルトでブロックされます。

アクセス制御(DM)

channels.zalouser.dmPolicypairing | allowlist | open | disabled をサポートします(デフォルト:pairing)。

channels.zalouser.allowFrom はユーザー ID または名前を受け付けます。 セットアップ時、名前はプラグイン内のコンタクト検索で ID に解決されます。

承認:

  • openclaw pairing list zalouser
  • openclaw pairing approve zalouser <code>

グループアクセス(任意)

  • デフォルト:channels.zalouser.groupPolicy = "open"(グループを許可)。未設定時のデフォルト上書きは channels.defaults.groupPolicy を使います。
  • allowlist に制限するには:channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groupschannels.zalouser.groupAllowFrom を使います。
  • グループをすべてブロック:channels.zalouser.groupPolicy = "disabled"
  • configure wizard はグループ allowlist を促せます。
  • 起動時、OpenClaw は allowlist 内のグループ/ユーザー名を ID に解決し、対応関係をログに出します。
  • グループ allowlist の一致はデフォルトで ID のみです。未解決の名前は、channels.zalouser.dangerouslyAllowNameMatching: true が有効でない限り認可では無視されます。
  • channels.zalouser.dangerouslyAllowNameMatching: true は可変なグループ名マッチングを再有効化する break-glass compatibility mode です。
  • groupAllowFrom が未設定の場合、ランタイムはグループ送信者チェックで allowFrom にフォールバックします。
  • 送信者チェックは、通常のグループメッセージと制御コマンド(例:/new/reset)の両方に適用されます。

例:

{
  channels: {
    zalouser: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["1471383327500481391"],
      groups: {
        "123456789": { allow: true },
        "Work Chat": { allow: true },
      },
    },
  },
}

グループのメンション必須(Group mention gating)

  • channels.zalouser.groups.<group>.requireMention が、グループ返信にメンションを必須にするかを制御します。
  • 解決順:正確な group id/name → 正規化された group slug → * → デフォルト(true)。
  • allowlist group と open group mode の両方に適用されます。
  • 認可された制御コマンド(例:/new)は mention gating をバイパスできます。
  • メンション必須によりグループメッセージがスキップされた場合、OpenClaw は pending group history として保存し、次に処理されるグループメッセージに含めます。
  • グループ履歴の上限はデフォルトで messages.groupChat.historyLimit(フォールバック:50)。アカウント単位で channels.zalouser.historyLimit で上書きできます。

例:

{
  channels: {
    zalouser: {
      groupPolicy: "allowlist",
      groups: {
        "*": { allow: true, requireMention: true },
        "Work Chat": { allow: true, requireMention: false },
      },
    },
  },
}

マルチアカウント

アカウントは OpenClaw の state 内の zalouser プロファイルに対応します。例:

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

タイピング、リアクション、配信確認

  • OpenClaw は返信を送信する前に typing event を送ります(best-effort)。
  • チャンネルアクションの message reaction アクション reactzalouser でサポートされています。
    • remove: true を指定すると、特定のリアクション絵文字をメッセージから削除します。
    • リアクションのセマンティクス: Reactions
  • イベントメタデータを含む受信メッセージに対して、OpenClaw は delivered + seen acknowledgement を送ります(best-effort)。

トラブルシューティング

ログインが保持されない

  • openclaw channels status --probe
  • 再ログイン:openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser

allowlist / グループ名が解決されない

  • allowFrom / groupAllowFrom / groups には数値 ID、または正確な友だち/グループ名を使ってください。

古いCLIベースのセットアップからアップグレードした

  • 古い外部 zca プロセス前提を削除してください。
  • このチャネルは、外部 CLI バイナリなしで OpenClaw 内で完全に動作します。

参考

BizClaw 導入支援

OpenClaw の構築を
まるごと代行します

Mac mini のセットアップから Slack・iMessage 連携まで、届いた日から使える状態でお届けします。

サービスを見る

関連記事

Read article
AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

AIエージェントのメモリスタックとは?2026年に重要度が上がる理由をやさしく解説

Read article
OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

OpenClaw vs Hermes vs Claude、創業者はどれを選ぶべき?2026年版の実務比較

Read article
X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説

X公式MCPサーバーとは?AIエージェント運用で何が変わるのかを実務目線で解説