OpenClawでZalo個人アカウントを自動化:5分で接続設定
メッセージプラットフォームの自動化を検討している際、公式 API が提供されていなかったり、個人のアカウントをそのまま活用したい場面で苦労したことはありませんか?特に Zalo のようなサービスでは、個人アカウントの操作を自動化するハードルが高いと感じるかもしれません。
OpenClaw の Zalo Personal 統合を使えば、こうした課題を解決できます。この統合は zca-js を利用して、個人の Zalo アカウントを直接自動化する仕組みを提供します。
Zalo Personal (非公式)
Section titled “Zalo Personal (非公式)”ステータス: experimental(実験的)。この統合は、OpenClaw 内部でネイティブな zca-js を使用し、個人の Zalo アカウントを自動化します。
警告: これは非公式の統合であり、アカウントの停止や禁止(BAN)につながる可能性があります。自己責任で使用してください。
必要なプラグイン
Section titled “必要なプラグイン”Zalo Personal はプラグインとして提供されており、コアのインストールには含まれていません。
- CLI でインストールする場合:
openclaw plugins install @openclaw/zalouser - ソースコードからインストールする場合:
openclaw plugins install ./path/to/local/zalouser-plugin - 詳細: Plugins
外部の zca/openzca CLI バイナリは必要ありません。
クイックセットアップ(初心者向け)
Section titled “クイックセットアップ(初心者向け)”- プラグインをインストールします(上記参照)。
- ログイン(Gateway を実行しているマシンで QR コードを表示):
openclaw channels login --channel zalouser- Zalo モバイルアプリで QR コードをスキャンします。
- チャンネルを有効にします:
{ channels: { zalouser: { enabled: true, dmPolicy: "pairing", }, },}- Gateway を再起動します(またはセットアップを完了させます)。
- DM アクセスのデフォルトは pairing です。最初の連絡時にペアリングコードを承認してください。
このプラグインについて
Section titled “このプラグインについて”zca-jsを介して、完全にプロセス内で動作します。- ネイティブのイベントリスナーを使用して、受信メッセージを受け取ります。
- JS API を通じて、返信(テキスト、メディア、リンク)を直接送信します。
- Zalo Bot API が利用できない「個人アカウント」のユースケース向けに設計されています。
ネーミングについて
Section titled “ネーミングについて”チャンネル ID は zalouser となっています。これは、個人の Zalo ユーザーアカウント(非公式)を自動化することを明示するためです。将来的に公式の Zalo API 統合が登場した時のために、zalo という名前は予約されています。
ID の確認方法(ディレクトリ)
Section titled “ID の確認方法(ディレクトリ)”ディレクトリ CLI を使用して、相手(ピア)やグループ、およびそれらの ID を確認できます。
openclaw directory self --channel zalouseropenclaw directory peers list --channel zalouser --query "name"openclaw directory groups list --channel zalouser --query "work"- 送信テキストは、Zalo クライアントの制限により約 2000 文字ごとに分割されます。
- ストリーミングはデフォルトでブロックされています。
アクセス制御(DM)
Section titled “アクセス制御(DM)”channels.zalouser.dmPolicy は、pairing | allowlist | open | disabled をサポートしています(デフォルトは pairing)。
channels.zalouser.allowFrom にはユーザー ID または名前を指定できます。セットアップ中、名前はプラグイン内の連絡先検索機能によって ID に解決されます。
承認は以下のコマンドで行います。
openclaw pairing list zalouseropenclaw 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 }, }, }, },}マルチアカウント
Section titled “マルチアカウント”アカウントは 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)の確認を送信します(ベストエフォート)。
トラブルシューティング
Section titled “トラブルシューティング”ログインが維持されない場合:
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 — アクセスモデルとセキュリティ強化
次のステップ
Section titled “次のステップ”設定で困ったことがあれば、こちらのツールも活用してみてください。 AI Setup Assistant
OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。