openclaw-juheの微信/企微通道プラグイン
概要
openclaw-juhe は、OpenClaw(チャットボット/メッセージング基盤向けの拡張フレームワーク)に微信(WeChat)と企業微信(企微/WeCom)の通道を追加するためのプラグインです。TypeScript で記述され、Node.js 18 以上で動作することを想定しています。Webhook でのイベント受信、署名・トークン検証、API を使ったメッセージ送信、設定の YAML 化など、実運用に必要な要素を備え、OpenClaw のプラグイン仕様(openclaw.plugin.json)に従って統合できます。MIT ライセンスで公開されており、サンプル設定ファイルが同梱されています。(約300字)
リポジトリの統計情報
- スター数: 15
- フォーク数: 2
- ウォッチャー数: 15
- コミット数: 11
- ファイル数: 13
- メインの言語: TypeScript
主な特徴
- 微信(WeChat)と企業微信(WeCom)の両方をサポートし、OpenClaw に通道を提供するプラグイン実装。
- TypeScript ベース(型定義あり)で Node.js 18+ をターゲット、堅牢でメンテナンスしやすい設計。
- YAML による簡潔な設定(config.example.yaml)と OpenClaw 用のプラグイン定義(openclaw.plugin.json)を同梱。
- MIT ライセンスで商用利用や改変が容易。軽量かつ OpenClaw へ貼り付けるだけで利用可能。
技術的なポイント
openclaw-juhe は、OpenClaw のプラグインインターフェースに合わせて設計された「通道(channel)」実装です。エントリーポイントは index.ts で、プラグイン読み込み時に OpenClaw 側へフックを提供します。主な技術的要素は以下のとおりです。
- Webhook 受信と署名検証: 微信/企微からのコールバックを受け取り、リクエスト署名(token/encodingAESKey/msg_signature 等)やタイムスタンプ、nonce の検証を行う処理を実装。これにより不正なリクエストを排除します。
- アクセストークン管理: API 利用に必要なアクセストークンの取得とキャッシュ、期限切れ対応を組み込み。冪等性とレート制限を考慮した再試行戦略を想定しています。
- メッセージ変換とイベントハンドリング: 微信/企微 のイベントフォーマット(XML/JSON)を OpenClaw が扱う内部メッセージ形式へ変換するパイプラインを実装。テキスト・画像・イベント通知等の基本的なタイプをサポートします。
- 設定と型安全性: config.example.yaml による設定例を提供し、TypeScript の型注釈で設定ミスを低減。設定項目には appid/corpID/agentID/secret、callback URL、暗号化キーなどが含まれます。
- プラグイン定義ファイル: openclaw.plugin.json は OpenClaw にプラグインを登録するためのメタ情報を含み、インストールや有効化を簡易化します。
- 実運用配慮: Node.js 18+ のランタイム機能(Fetch API 等)を活用し、依存を最小化。ログ出力やエラーハンドリングのフックを用意して実際の運用で監視・デバッグしやすくしています。
これらにより、openclaw-juhe は OpenClaw を利用する開発者が微信/企微と迅速に連携できる基盤を提供します。拡張ポイントとしては、メッセージのカスタムパーサ追加、リトライ・バックオフのポリシー強化、マルチテナント対応のための設定分離などが想定されています。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- README.md: file
- config.example.yaml: file — 設定例。appid、secret、token、encodingAESKey、callback URL などの記述例を提供。
- index.ts: file — プラグインのエントリーポイント。OpenClaw への登録ロジックとルーティングを実装。
- openclaw.plugin.json: file — OpenClaw 用のプラグインメタデータ(名前、バージョン、エントリポイント等)。
- package.json: file — 依存関係、スクリプト、エントリ設定などを管理(TypeScript ビルド設定を含む想定)。
- src/*.ts: file群 — 署名検証、トークン管理、メッセージ変換、HTTP ハンドラ等の実装。
- tsconfig.json: file — TypeScript コンパイラオプション。
- LICENSE: file — MIT ライセンス。 …他 8 ファイル
各ファイルはシンプルに保たれており、最小限の設定で OpenClaw へ組み込める構成です。config.example.yaml を参考に本番用の設定ファイルを用意し、OpenClaw のプラグインディレクトリに配置するだけで通道が有効化されます。
まとめ
OpenClaw に微信/企業微信を手早く追加できる、実用的で軽量な TypeScript プラグインです。(約50字)
リポジトリ情報:
- 名前: openclaw-juhe
- 説明: 説明なし
- スター数: 15
- 言語: TypeScript
- URL: https://github.com/Hanson/openclaw-juhe
- オーナー: Hanson
- アバター: https://avatars.githubusercontent.com/u/10583423?v=4
READMEの抜粋: