コンテンツにスキップ

OpenClawでZalo個人アカウントを自動化:5分で接続設定

メッセージプラットフォームの自動化を検討している際、公式 API が提供されていなかったり、個人のアカウントをそのまま活用したい場面で苦労したことはありませんか?特に Zalo のようなサービスでは、個人アカウントの操作を自動化するハードルが高いと感じるかもしれません。

OpenClaw の Zalo Personal 統合を使えば、こうした課題を解決できます。この統合は zca-js を利用して、個人の Zalo アカウントを直接自動化する仕組みを提供します。

ステータス: experimental(実験的)。この統合は、OpenClaw 内部でネイティブな zca-js を使用し、個人の Zalo アカウントを自動化します。

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

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

  • CLI でインストールする場合: openclaw plugins install @openclaw/zalouser
  • ソースコードからインストールする場合: openclaw plugins install ./path/to/local/zalouser-plugin
  • 詳細: Plugins

外部の zca/openzca CLI バイナリは必要ありません。

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

Section titled “クイックセットアップ(初心者向け)”
  1. プラグインをインストールします(上記参照)。
  2. ログイン(Gateway を実行しているマシンで QR コードを表示):
    • openclaw channels login --channel zalouser
    • Zalo モバイルアプリで QR コードをスキャンします。
  3. チャンネルを有効にします:
{
channels: {
zalouser: {
enabled: true,
dmPolicy: "pairing",
},
},
}
  1. Gateway を再起動します(またはセットアップを完了させます)。
  2. DM アクセスのデフォルトは pairing です。最初の連絡時にペアリングコードを承認してください。
  • zca-js を介して、完全にプロセス内で動作します。
  • ネイティブのイベントリスナーを使用して、受信メッセージを受け取ります。
  • JS API を通じて、返信(テキスト、メディア、リンク)を直接送信します。
  • Zalo Bot API が利用できない「個人アカウント」のユースケース向けに設計されています。

チャンネル ID は zalouser となっています。これは、個人の Zalo ユーザーアカウント(非公式)を自動化することを明示するためです。将来的に公式の Zalo API 統合が登場した時のために、zalo という名前は予約されています。

ID の確認方法(ディレクトリ)

Section titled “ID の確認方法(ディレクトリ)”

ディレクトリ CLI を使用して、相手(ピア)やグループ、およびそれらの ID を確認できます。

Terminal window
openclaw directory self --channel zalouser
openclaw directory peers list --channel zalouser --query "name"
openclaw directory groups list --channel zalouser --query "work"
  • 送信テキストは、Zalo クライアントの制限により約 2000 文字ごとに分割されます。
  • ストリーミングはデフォルトでブロックされています。

channels.zalouser.dmPolicy は、pairing | allowlist | open | disabled をサポートしています(デフォルトは pairing)。

channels.zalouser.allowFrom にはユーザー ID または名前を指定できます。セットアップ中、名前はプラグイン内の連絡先検索機能によって ID に解決されます。

承認は以下のコマンドで行います。

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

グループアクセス(オプション)

Section titled “グループアクセス(オプション)”
  • デフォルト設定: channels.zalouser.groupPolicy = "open"(グループが許可されます)。未設定時のデフォルトを上書きするには channels.defaults.groupPolicy を使用してください。
  • 許可リスト(allowlist)で制限する場合:
    • channels.zalouser.groupPolicy = "allowlist"
    • channels.zalouser.groups(キーは固定のグループ ID である必要があります。起動時に可能な限り名前から ID へ解決されます)
    • channels.zalouser.groupAllowFrom(許可されたグループ内で、どの送信者が Bot を起動できるかを制御します)
  • すべてのグループをブロックする場合: channels.zalouser.groupPolicy = "disabled"。
  • 設定ウィザードでグループの許可リストを入力することも可能です。
  • 起動時、OpenClaw は許可リスト内のグループ名やユーザー名を ID に解決し、そのマッピングをログに記録します。
  • グループの許可リスト照合は、デフォルトで ID のみで行われます。解決できなかった名前は、channels.zalouser.dangerouslyAllowNameMatching: true が有効でない限り、認証では無視されます。
  • channels.zalouser.dangerouslyAllowNameMatching: true は、変更される可能性のあるグループ名による照合を再度有効にする、互換モードです。
  • groupAllowFrom が未設定の場合、グループ送信者のチェックは allowFrom の設定にフォールバックします。
  • 送信者チェックは、通常のグループメッセージとコントロールコマンド(例: /new, /reset)の両方に適用されます。

例:

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

グループメンションによる制限

Section titled “グループメンションによる制限”
  • channels.zalouser.groups.<group>.requireMention で、グループ返信にメンションが必要かどうかを制御します。
  • 解決順序: 正確なグループ ID/名前 -> 正規化されたグループスラッグ -> * -> デフォルト(true)。
  • これは許可リストに登録されたグループと、オープングループモードの両方に適用されます。
  • 権限のあるコントロールコマンド(例: /new)は、メンション制限をバイパスできます。
  • メンションが必要なためにグループメッセージがスキップされた場合、OpenClaw はそれを保留中のグループ履歴として保存し、次に処理されるグループメッセージに含めます。
  • グループ履歴の制限は、デフォルトで messages.groupChat.historyLimit(フォールバック値は 50)に従います。channels.zalouser.historyLimit を使ってアカウントごとに上書きも可能です。

例:

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

アカウントは OpenClaw のステート内で zalouser プロファイルにマッピングされます。

例:

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

入力中表示、リアクション、既読確認

Section titled “入力中表示、リアクション、既読確認”
  • OpenClaw は返信を送信する前に、入力中(typing)イベントを送信します(ベストエフォート)。
  • チャンネルアクションにおいて、メッセージへのリアクション react が zalouser でサポートされています。
    • 特定のリアクション絵文字を削除するには remove: true を使用してください。
    • リアクションの仕様について: Reactions
  • イベントメタデータを含む受信メッセージに対して、OpenClaw は配信済みおよび既読(seen)の確認を送信します(ベストエフォート)。

ログインが維持されない場合:

  • openclaw channels status --probe を実行してください。
  • 再ログインを試してください: openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser

許可リストやグループ名が解決されない場合:

  • allowFrom、groupAllowFrom、groups には、数値 ID または正確なフレンド名・グループ名を使用してください。

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

  • 外部の zca プロセスに関する古い前提条件をすべて削除してください。
  • 現在、このチャンネルは外部 CLI バイナリなしで、OpenClaw 内で完全に動作します。
  • Channels Overview — サポートされているすべてのチャンネル
  • Pairing — DM の認証とペアリングフロー
  • Groups — グループチャットの動作とメンション制限
  • Channel Routing — メッセージのセッションルーティング
  • Security — アクセスモデルとセキュリティ強化

設定で困ったことがあれば、こちらのツールも活用してみてください。 AI Setup Assistant

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。