jpskill.com
📦 その他 コミュニティ

wechat-channel

WechatyとPadLocalを利用し、WeChatのメッセージ送受信を可能にするSkillで、AIアシスタントとの連携や、OpenClawからのメッセージ送信など、WeChatを介したAIとの双方向コミュニケーションを実現するSkill。

📜 元の英語説明(参考)

微信 (WeChat) 与 OpenClaw 的双向集成通道。基于 Wechaty + PadLocal 实现微信消息的接收和发送,支持私聊、群聊、@提及检测、图片/文件传输。当需要通过微信与 AI 助手交互、接收微信消息触发 AI 响应、或从 OpenClaw 发送消息到微信时使用此技能。

🇯🇵 日本人クリエイター向け解説

一言でいうと

WechatyとPadLocalを利用し、WeChatのメッセージ送受信を可能にするSkillで、AIアシスタントとの連携や、OpenClawからのメッセージ送信など、WeChatを介したAIとの双方向コミュニケーションを実現するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o wechat-channel.zip https://jpskill.com/download/8273.zip && unzip -o wechat-channel.zip && rm wechat-channel.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/8273.zip -OutFile "$d\wechat-channel.zip"; Expand-Archive "$d\wechat-channel.zip" -DestinationPath $d -Force; ri "$d\wechat-channel.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して wechat-channel.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → wechat-channel フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

微信 Channel 連携

微信を OpenClaw に接続し、双方向メッセージチャネルを実現します。

アーキテクチャ概要

┌─────────────┐     ┌──────────────────┐     ┌─────────────┐
│   微信用户   │ ←→  │  Wechaty Bridge  │ ←→  │  OpenClaw   │
│  (私聊/群聊) │     │  (PadLocal协议)   │     │   Gateway   │
└─────────────┘     └──────────────────┘     └─────────────┘
                           ↓
                    ┌──────────────────┐
                    │   消息格式转换    │
                    │   - 文本/图片/文件 │
                    │   - @提及检测     │
                    │   - 群聊/私聊路由  │
                    └──────────────────┘

核心コンポーネント

1. Wechaty Bridge (メッセージブリッジサービス)

独立して動作する Node.js サービスで、以下の役割を担います。

  • 微信ログイン(QRコードスキャン)
  • メッセージの送受信
  • 連絡先/グループ管理
  • OpenClaw Gateway との通信

2. OpenClaw Webhook レシーバー

Wechaty Bridge からのメッセージを受信し、AI Agent に転送します。

3. メッセージ送信 API

OpenClaw Agent は HTTP API を介して微信にメッセージを送信します。

クイックスタート

前提条件

  • Node.js >= 18
  • PadLocal Token(有料サービス、約 ¥200/月)
  • OpenClaw Gateway が実行中であること

1. 依存関係のインストール

cd /home/aa/clawd/skills/wechat-channel
npm init -y
npm install wechaty wechaty-puppet-padlocal axios dotenv

2. 環境変数の設定

cp .env.example .env
# .env を編集して設定を記入

3. サービスの起動

node scripts/wechat-bridge.js
# ターミナルに表示される QR コードをスキャンしてログイン

設定説明

環境変数 (.env)

# PadLocal Token (必須)
# 取得方法: https://pad-local.com
PADLOCAL_TOKEN=YOUR_PADLOCAL_TOKEN

# OpenClaw Gateway 設定
OPENCLAW_GATEWAY_URL=http://127.0.0.1:18789
OPENCLAW_WEBHOOK_SECRET=your_webhook_secret

# 微信 Bot 設定
WECHAT_BOT_NAME=OpenClaw助手

# セキュリティ設定
# 許可するユーザー微信ID (カンマ区切り、空欄の場合はすべて許可)
ALLOWED_USERS=wxid_xxx,wxid_yyy
# 許可するグループID (カンマ区切り、空欄の場合はすべて許可)
ALLOWED_GROUPS=xxx@chatroom,yyy@chatroom

# グループチャットの挙動
# @メンションが必要な場合にのみグループメッセージに応答するか
REQUIRE_MENTION_IN_GROUP=true

# ログレベル
LOG_LEVEL=info

OpenClaw 設定 (openclaw.json)

{
  "channels": {
    "wechat": {
      "enabled": true,
      "webhookUrl": "http://localhost:3001/webhook",
      "webhookSecret": "your_webhook_secret",
      "dmPolicy": "allowlist",
      "allowFrom": ["wxid_xxx", "wxid_yyy"],
      "groups": {
        "xxx@chatroom": {
          "name": "工作群",
          "requireMention": true
        }
      }
    }
  }
}

メッセージ形式

受信メッセージ (Webhook Payload)

{
  "type": "message",
  "channel": "wechat",
  "messageId": "msg_123456",
  "from": {
    "id": "wxid_sender",
    "name": "张三",
    "alias": "zhangsan"
  },
  "chat": {
    "id": "wxid_sender",
    "type": "private"
  },
  "text": "你好,帮我查一下天气",
  "timestamp": 1706745600000,
  "mentions": [],
  "replyTo": null
}

グループチャットメッセージ

{
  "type": "message",
  "channel": "wechat",
  "messageId": "msg_789012",
  "from": {
    "id": "wxid_sender",
    "name": "张三"
  },
  "chat": {
    "id": "xxx@chatroom",
    "type": "group",
    "name": "工作群"
  },
  "text": "@OpenClaw助手 帮我总结一下今天的会议",
  "mentions": ["bot_wxid"],
  "isMentioned": true
}

送信メッセージ (API)

# テキストを送信
curl -X POST http://localhost:3001/api/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_SECRET" \
  -d '{
    "to": "wxid_receiver",
    "type": "text",
    "content": "收到,正在处理..."
  }'

# 画像を送信
curl -X POST http://localhost:3001/api/send \
  -H "Content-Type: application/json" \
  -d '{
    "to": "wxid_receiver",
    "type": "image",
    "url": "https://example.com/image.png"
  }'

# ファイルを送信
curl -X POST http://localhost:3001/api/send \
  -d '{
    "to": "wxid_receiver",
    "type": "file",
    "path": "/path/to/file.pdf",
    "filename": "report.pdf"
  }'

セキュリティポリシー

ダイレクトメッセージポリシー (dmPolicy)

ポリシー 説明
open すべてのユーザーがダイレクトメッセージを送信できる(危険)
allowlist allowFrom リストのユーザーのみ許可
pairing ペアリング承認が必要

グループチャットポリシー

設定 説明
requireMention: true 応答するには、@メンションが必須
allowFrom グループ内でトリガーを許可するユーザーのリスト

使用例

1. パーソナルアシスタント

ユーザー: 明日の北京の天気を調べて
Bot: 明日の北京の天気:晴れ、気温 -5°C ~ 5°C、ダウンジャケットをお勧めします。

2. グループチャットアシスタント

ユーザー: @OpenClaw助手 今日の会議を要約して
Bot: 今日の議論のポイント:
1. プロジェクトの進捗を加速する必要がある
2. 来週水曜日までにデザインを完成させる
3. 金曜日にコードレビューを実施する

3. 自動通知

// OpenClaw Agent から通知を送信
await sendWechatMessage({
  to: 'xxx@chatroom',
  text: '⚠️ サーバーの CPU 使用率が 90% を超えています。確認してください!'
});

トラブルシューティング

ログインの問題

問題: QRコードをスキャンしてもログインできない 解決:

  1. PadLocal Token が有効かどうかを確認します
  2. 微信アカウントが制限されていないことを確認します
  3. Token を再取得してみてください

メッセージの送受信の問題

問題: メッセージの送信に失敗する 解決:

  1. ネットワーク接続を確認します
  2. ターゲットのユーザー/グループ ID が正しいことを確認します
  3. ログのエラーメッセージを確認します

接続の切断

問題: サービスがしばらくすると切断される 解決:

  1. PM2 を使用してプロセスを管理し、自動的に再起動します
  2. PadLocal サービスのステータスを確認します
  3. ハートビート検出と再接続メカニズムを実装します

制限事項

PadLocal の制限

  • 有料の Token が必要(約 ¥200/月)
  • 1 つの Token でログインできる微信アカウントは 1 つのみ
  • 微信のリスク管理の影響を受ける可能性があります

微信プラットフォームの制限

  • 送信頻度の制限(1〜2秒の間隔を推奨)
  • グループチャットの人数制限
  • ファイルサイズの制限(約 100MB)
  • ミニプログラムメッセージはサポートされていません

機能制限

  • 音声メッセージのテキスト変換はサポートされていません(別途統合が必要)
  • ビデオコンテンツはサポートされていません
  • 紅包(お年玉)、送金などの機密機能は利用できません

関連ファイル

  • scripts/wechat-bridge.js - メインサービスコード
  • scripts/message-handler.js - メッセージ処理ロジック
  • .env.example - 環境変数テンプレート
  • references/wechaty-api.md - Wechaty API リファレンス

TODO

  • [ ] PadLocal Token を取得する
  • [ ] OpenClaw Webhook 受信を設定する
  • [ ] ダイレクトメッセージの送受信をテストする
  • [ ] グループチャットの @メンションをテストする
  • [ ] セキュリティポリシーを設定する
  • [ ] システムサービスとしてデプロイする
  • [ ] 切断時の再接続を実装する
  • [ ] メッセージキューを追加する(高並行シナリオ)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

微信 Channel 集成

将微信接入 OpenClaw,实现双向消息通道。

架构概述

┌─────────────┐     ┌──────────────────┐     ┌─────────────┐
│   微信用户   │ ←→  │  Wechaty Bridge  │ ←→  │  OpenClaw   │
│  (私聊/群聊) │     │  (PadLocal协议)   │     │   Gateway   │
└─────────────┘     └──────────────────┘     └─────────────┘
                           ↓
                    ┌──────────────────┐
                    │   消息格式转换    │
                    │   - 文本/图片/文件 │
                    │   - @提及检测     │
                    │   - 群聊/私聊路由  │
                    └──────────────────┘

核心组件

1. Wechaty Bridge (消息桥接服务)

独立运行的 Node.js 服务,负责:

  • 微信登录(扫码)
  • 消息收发
  • 联系人/群组管理
  • 与 OpenClaw Gateway 通信

2. OpenClaw Webhook 接收器

接收来自 Wechaty Bridge 的消息,转发给 AI Agent。

3. 消息发送 API

OpenClaw Agent 通过 HTTP API 发送消息到微信。

快速开始

前置条件

  • Node.js >= 18
  • PadLocal Token(付费服务,约 ¥200/月)
  • OpenClaw Gateway 运行中

1. 安装依赖

cd /home/aa/clawd/skills/wechat-channel
npm init -y
npm install wechaty wechaty-puppet-padlocal axios dotenv

2. 配置环境变量

cp .env.example .env
# 编辑 .env 填入配置

3. 启动服务

node scripts/wechat-bridge.js
# 扫描终端显示的二维码登录

配置说明

环境变量 (.env)

# PadLocal Token (必需)
# 获取方式: https://pad-local.com
PADLOCAL_TOKEN=YOUR_PADLOCAL_TOKEN

# OpenClaw Gateway 配置
OPENCLAW_GATEWAY_URL=http://127.0.0.1:18789
OPENCLAW_WEBHOOK_SECRET=your_webhook_secret

# 微信 Bot 配置
WECHAT_BOT_NAME=OpenClaw助手

# 安全配置
# 允许的用户微信ID (逗号分隔,留空允许所有)
ALLOWED_USERS=wxid_xxx,wxid_yyy
# 允许的群聊ID (逗号分隔,留空允许所有)
ALLOWED_GROUPS=xxx@chatroom,yyy@chatroom

# 群聊行为
# 是否需要@才响应群消息
REQUIRE_MENTION_IN_GROUP=true

# 日志级别
LOG_LEVEL=info

OpenClaw 配置 (openclaw.json)

{
  "channels": {
    "wechat": {
      "enabled": true,
      "webhookUrl": "http://localhost:3001/webhook",
      "webhookSecret": "your_webhook_secret",
      "dmPolicy": "allowlist",
      "allowFrom": ["wxid_xxx", "wxid_yyy"],
      "groups": {
        "xxx@chatroom": {
          "name": "工作群",
          "requireMention": true
        }
      }
    }
  }
}

消息格式

接收消息 (Webhook Payload)

{
  "type": "message",
  "channel": "wechat",
  "messageId": "msg_123456",
  "from": {
    "id": "wxid_sender",
    "name": "张三",
    "alias": "zhangsan"
  },
  "chat": {
    "id": "wxid_sender",
    "type": "private"
  },
  "text": "你好,帮我查一下天气",
  "timestamp": 1706745600000,
  "mentions": [],
  "replyTo": null
}

群聊消息

{
  "type": "message",
  "channel": "wechat",
  "messageId": "msg_789012",
  "from": {
    "id": "wxid_sender",
    "name": "张三"
  },
  "chat": {
    "id": "xxx@chatroom",
    "type": "group",
    "name": "工作群"
  },
  "text": "@OpenClaw助手 帮我总结一下今天的会议",
  "mentions": ["bot_wxid"],
  "isMentioned": true
}

发送消息 (API)

# 发送文本
curl -X POST http://localhost:3001/api/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_SECRET" \
  -d '{
    "to": "wxid_receiver",
    "type": "text",
    "content": "收到,正在处理..."
  }'

# 发送图片
curl -X POST http://localhost:3001/api/send \
  -H "Content-Type: application/json" \
  -d '{
    "to": "wxid_receiver",
    "type": "image",
    "url": "https://example.com/image.png"
  }'

# 发送文件
curl -X POST http://localhost:3001/api/send \
  -d '{
    "to": "wxid_receiver",
    "type": "file",
    "path": "/path/to/file.pdf",
    "filename": "report.pdf"
  }'

安全策略

私聊策略 (dmPolicy)

策略 说明
open 允许所有人私聊(危险)
allowlist 仅允许 allowFrom 列表中的用户
pairing 需要配对审批

群聊策略

配置 说明
requireMention: true 必须@机器人才响应
allowFrom 群内允许触发的用户列表

使用场景

1. 个人助手

用户: 帮我查一下明天北京的天气
Bot: 明天北京天气:晴,温度 -5°C ~ 5°C,建议穿羽绒服。

2. 群聊助手

用户: @OpenClaw助手 总结一下刚才的讨论
Bot: 刚才讨论的要点:
1. 项目进度需要加快
2. 下周三前完成设计稿
3. 周五进行代码评审

3. 自动化通知

// 从 OpenClaw Agent 发送通知
await sendWechatMessage({
  to: 'xxx@chatroom',
  text: '⚠️ 服务器 CPU 使用率超过 90%,请检查!'
});

故障排查

登录问题

问题: 扫码后无法登录 解决:

  1. 检查 PadLocal Token 是否有效
  2. 确认微信账号未被限制
  3. 尝试重新获取 Token

消息收发问题

问题: 消息发送失败 解决:

  1. 检查网络连接
  2. 确认目标用户/群组 ID 正确
  3. 查看日志中的错误信息

连接断开

问题: 服务运行一段时间后断开 解决:

  1. 使用 PM2 管理进程,自动重启
  2. 检查 PadLocal 服务状态
  3. 实现心跳检测和重连机制

限制说明

PadLocal 限制

  • 需要付费 Token(约 ¥200/月)
  • 单 Token 只能登录一个微信号
  • 可能受微信风控影响

微信平台限制

  • 发送频率限制(建议间隔 1-2 秒)
  • 群聊人数限制
  • 文件大小限制(约 100MB)
  • 不支持小程序消息

功能限制

  • 不支持语音消息转文字(需额外集成)
  • 不支持视频号内容
  • 红包、转账等敏感功能不可用

相关文件

  • scripts/wechat-bridge.js - 主服务代码
  • scripts/message-handler.js - 消息处理逻辑
  • .env.example - 环境变量模板
  • references/wechaty-api.md - Wechaty API 参考

TODO

  • [ ] 获取 PadLocal Token
  • [ ] 配置 OpenClaw Webhook 接收
  • [ ] 测试私聊消息收发
  • [ ] 测试群聊 @提及
  • [ ] 配置安全策略
  • [ ] 部署为系统服务
  • [ ] 实现断线重连
  • [ ] 添加消息队列(高并发场景)