OpenClaw Feishu/Lark 連携ガイド:アプリ作成からメッセージ送受信まで
OpenClaw を Feishu/Lark に接続する方法をステップバイステップで解説。アプリ作成、権限設定、WebSocket 接続、グループチャット設定、トラブルシューティングを網羅。
OpenClaw Guides
Tutorial Authors
Feishu と Lark の違い:OpenClaw での連携方法
Feishu(飛書)と Lark は、ByteDance が提供するエンタープライズ向けメッセージングプラットフォームです。Feishu は中国本土向け、Lark は国際市場向けに展開されています。基盤となるアーキテクチャは共通のため、OpenClaw との連携手順はほぼ同じです。
OpenClaw から Feishu/Lark に接続するには、2つの方法があります。
| ビルトインプラグイン(推奨) | 公式 Feishu プラグイン | |
|---|---|---|
| 提供元 | OpenClaw コミュニティ | Feishu/Lark チーム(ByteDance) |
| 動作方式 | ボットとして動作 | ユーザー代理(OAuth) |
| できること | メッセージ送受信、基本的なドキュメント閲覧 | ワークスペース全体:ドキュメント、カレンダー、タスク、スプレッドシート、Wiki |
| 導入方法 | 内蔵、追加インストール不要 | feishu-plugin-onboard install |
| 導入の難易度 | 中程度 | やや高い |
| おすすめの用途 | メッセージング中心の利用 | AI にワークスペースへのアクセスが必要なチーム |
本ガイドでは、約90%のユースケースをカバーするビルトインプラグインを中心に解説します。ドキュメントの閲覧やカレンダー管理、タスク作成などワークスペース全体の連携が必要な場合は、後半の公式 Feishu プラグインセクションをご覧ください。
OpenClaw Feishu 連携の前提条件
作業を始める前に、以下を確認してください。
- OpenClaw がインストール済みで起動していること(バージョン 2026.2 以上)。まだの場合はインストールガイドを参照してください。
- Feishu 開発者アカウントを open.feishu.cn(Lark の場合は open.larksuite.com)で取得済みであること。
- ゲートウェイがアクセス可能であること。以下のコマンドで確認できます。
openclaw gateway status
パブリック IP やドメインは不要です。 ビルトインプラグインはデフォルトで WebSocket モードを使用し、OpenClaw 側から Feishu サーバーへの発信接続を確立します。NAT やファイアウォールの背後、一般的な企業ネットワーク内でも、ポートフォワーディングなしで動作します。
ステップ 1:Feishu/Lark ボットアプリを作成する
開発者コンソールを開く
ご利用のプラットフォームに応じて、開発者ポータルにアクセスしてください。
- Feishu(中国): open.feishu.cn → 開発者コンソール
- Lark(国際版): open.larksuite.com → Developer Console
アプリケーションの作成
- カスタムアプリを作成(または「企業自建応用」)をクリックします
- アプリ名を入力します。「OpenClaw Assistant」のようなわかりやすい名前がおすすめです
- 必要に応じてアイコンと説明文を設定します(ボットディレクトリでユーザーに表示される情報です)
認証情報のコピー
- 左サイドバーの認証情報と基本情報を開きます
- App ID をコピーします(
cli_a5xxxxxxxxxxxxxのような形式です) - App Secret をコピーします
App Secret は厳重に管理してください。 バージョン管理にコミットしたり、チャットに貼り付けたり、スクリーンショットに含めたりしないでください。万が一漏洩した場合は、開発者コンソールから直ちにリセットしてください。
ステップ 2:Feishu ボットの権限を設定する
アプリがメッセージを送受信するためには、特定の権限(スコープ)が必要です。設定方法は2通りあります。
方法 A:一括インポート(推奨)
JSON ブロックを貼り付けるだけで、すべての権限が一度に有効になります。
- アプリの設定画面で、開発設定 → 権限管理を開きます
- 一括有効化(Batch Enable)をクリックします
- 以下の JSON を貼り付けます:
{
"scopes": {
"tenant": [
"im:chat", "im:message", "im:message:send_as_bot",
"im:message.p2p_msg:readonly", "im:message.group_at_msg:readonly",
"im:message.group_msg", "im:message:readonly", "im:resource",
"im:chat.members:bot_access",
"im:chat.access_event.bot_p2p_chat:read",
"contact:user.employee_id:readonly",
"application:application:self_manage", "application:bot.menu:write",
"cardkit:card:write",
"docs:document.content:read", "sheets:spreadsheet",
"wiki:wiki:readonly", "event:ip_list"
],
"user": [
"im:chat.access_event.bot_p2p_chat:read"
]
}
}
- 確認をクリックして適用します
方法 B:手動で個別に選択
一括インポートが利用できない場合は、権限管理画面で以下の権限を個別に有効にしてください。
im:message— メッセージの送受信im:message:send_as_bot— ボットとしてメッセージを送信im:message.p2p_msg:readonly— DM(1対1メッセージ)の読み取りim:message.group_at_msg:readonly— グループでの@メンションメッセージの読み取りim:message.group_msg— グループメッセージ全体の読み取りim:resource— メッセージリソース(画像、ファイル)へのアクセスim:chat— チャットメタデータへのアクセスim:chat.members:bot_access— チャット内のボットメンバーシップ確認contact:user.employee_id:readonly— ユーザー ID の読み取りdocs:document.content:read— ドキュメント内容の読み取り(任意、ドキュメント要約用)sheets:spreadsheet— スプレッドシートへのアクセス(任意)wiki:wiki:readonly— Wiki ページの読み取り(任意)
ドキュメント、スプレッドシート、Wiki の権限は任意です。チャット内でユーザーが共有したドキュメントをボットが読み取って要約する機能が必要な場合のみ有効にしてください。
ステップ 3:OpenClaw Feishu ボットとイベント購読を有効にする
ボット機能の有効化
- 左サイドバーからアプリ機能 → ボットを開きます
- ボット機能をオンに切り替えます
- 必要に応じてボットの説明とヘルプテキストを設定します
イベント購読の設定
Feishu からメッセージを OpenClaw に転送するための重要なステップです。
- イベントとコールバック → イベント購読を開きます
- 接続方式で**長時間接続(WebSocket)**を選択します
- 以下のイベントを追加します:
| イベント | 名前 | 必須? |
|---|---|---|
im.message.receive_v1 | メッセージ受信 | 必須 |
im.message.reaction.created_v1 | 絵文字リアクション追加 | 任意 |
im.message.reaction.deleted_v1 | 絵文字リアクション削除 | 任意 |
application.bot.menu_v6 | カスタムボットメニュー | 任意 |
im.message.receive_v1 は唯一の必須イベントです。これがないと、ボットはメッセージを一切受信できません。リアクションイベントは、絵文字に応じたアクション(例:サムズアップで操作を確定)をトリガーしたい場合に便利です。
イベント購読が未設定だと、ユーザーがボットとの会話画面でチャット入力欄が表示されません。 ボットのプロフィールは見えるのにメッセージが打てない場合、ほぼ確実にこれが原因です。
「アプリが長時間接続を確立していません」エラーの最も多い原因もこれです。 ログにこのエラーが表示された場合、
im.message.receive_v1イベントの追加と Long Connection モードの選択を再確認してください。
ステップ 4:Feishu アプリを公開する
アプリは公開しないとユーザーに表示されません。
- 左サイドバーのバージョン管理を開きます
- バージョン作成をクリックします
- バージョン番号(例:
1.0.0)とリリースノートを入力します - 審査を提出をクリックします
テナント管理者が作成した社内向けアプリの場合、審査は通常自動で承認されます。一般の開発者の場合は、組織の審査プロセスに従う必要がある場合があります。数秒で利用可能になるはずです。組織で手動レビューが設定されている場合は、管理者の承認を待つ必要があります。
公開後の確認手順:
- Feishu(または Lark)のデスクトップ版かモバイル版を開きます
- アプリディレクトリまたは検索バーに移動します
- アプリ名で検索します
- ボットが一覧に表示されるはずです。ただし、まだメッセージは送らないでください。先に OpenClaw 側の設定を行います。
ステップ 5:OpenClaw で Feishu チャネルを設定する
CLI でかんたんセットアップ
最も手軽な方法です。
openclaw channels add # "Feishu" を選択し、App ID と Secret を入力 openclaw gateway restart
CLI が対話形式で必要な設定を案内してくれます。
手動で設定ファイルを編集する
より細かく制御したい場合は、~/.openclaw/openclaw.json を直接編集します。
{
channels: {
feishu: {
enabled: true,
domain: "feishu", // Lark 国際版の場合は "lark"
connectionMode: "websocket",
dmPolicy: "pairing",
groupPolicy: "open",
requireMention: true,
streaming: true,
typingIndicator: true,
accounts: {
main: {
appId: "cli_a5xxxxxxxxxxxxx",
appSecret: "your-app-secret",
botName: "AI Assistant"
}
}
}
}
}
OpenClaw Feishu 設定リファレンス
| オプション | デフォルト値 | 説明 |
|---|---|---|
domain | "feishu" | "feishu"(中国版)または "lark"(国際版) |
connectionMode | "websocket" | "websocket"(推奨)または "webhook" |
dmPolicy | "pairing" | DM アクセス制御:pairing / open / allowlist / disabled |
groupPolicy | "open" | グループアクセス制御:open / allowlist / disabled |
requireMention | true | グループでボットを起動するのに @メンションを要求するか |
streaming | true | ストリーミング出力(タイプライター効果)の有効化 |
typingIndicator | true | 生成中に「入力中...」インジケーターを表示 |
textChunkLimit | 2000 | メッセージチャンクあたりの最大文字数 |
mediaMaxMb | 30 | メディアファイルの最大サイズ(MB) |
Feishu と Lark の設定上の違いは
domainフィールドだけです。Feishu(中国版)なら"feishu"、Lark(国際版)なら"lark"を指定してください。認証情報、権限、イベントなど、その他の設定はすべて共通です。
ステップ 6:OpenClaw ゲートウェイを起動して Feishu とペアリングする
ゲートウェイの起動
openclaw gateway # ゲートウェイを起動(フォアグラウンド)
別のターミナルでログを監視します。
openclaw logs --follow # リアルタイムでログを表示
以下のような出力が表示されれば成功です。
[feishu] WebSocket connected to wss://open.feishu.cn/... [feishu] Bot "AI Assistant" is online
アカウントのペアリング
デフォルトの DM ポリシーは pairing に設定されており、新しいユーザーがボットとチャットするには承認が必要です。これにより不正アクセスを防止できます。
- Feishu(または Lark)を開いてボットを見つけます
- 何でもいいのでメッセージを送信します(「こんにちは」でOKです)
- ターミナルを確認します。ペアリングリクエストとコードが表示されます:
[feishu] New pairing request from user_xxxxx (Code: ABC123)
- ペアリングを承認します:
openclaw pairing approve feishu ABC123
- Feishu/Lark に戻ってもう一度メッセージを送信します
- AI が応答するはずです
接続状態の確認
openclaw gateway status
期待される出力:
Feishu: connected (websocket) Account: main Bot: AI Assistant Paired users: 1 Active groups: 0
ステータスが disconnected と表示される場合は、下のトラブルシューティングセクションを確認してください。
Feishu グループチャットの設定
デフォルトでは groupPolicy: "open" が設定されており、ボットは追加されたすべてのグループに参加できます。より厳密に制御するには、許可リストを使用します。
{
channels: {
feishu: {
groupPolicy: "allowlist",
requireMention: true,
groups: {
"oc_xxxxxxxxx": { // Feishu チャット ID
agentId: "main",
requireMention: false // このグループではすべてのメッセージに応答
},
"oc_yyyyyyyyy": {
agentId: "support", // 別のエージェントにルーティング
requireMention: true
}
}
}
}
}
グループのチャット ID を確認するには、ボットをグループに追加してログを確認してください。ボットがグループに参加した際に ID がログに出力されます。
ヒント: グローバルには
requireMention: trueを設定し、グループごとに個別にオーバーライドするのがおすすめです。大規模チャネルでボットが反応しすぎるのを防ぎつつ、AI 専用グループでは自由に会話できるようになります。
Feishu Webhook モードの設定
WebSocket が推奨の接続方式ですが、企業ネットワークによっては永続的な WebSocket 接続がブロックされることがあります。その場合は Webhook モードに切り替えてください。
{
channels: {
feishu: {
connectionMode: "webhook",
verificationToken: "from-feishu-console",
encryptKey: "from-feishu-console",
webhookPath: "/feishu/events",
webhookPort: 3000
}
}
}
Verification Token と Encrypt Key の取得方法:
- Feishu アプリの設定画面で、イベントとコールバック → 暗号化戦略を開きます
- Verification Token と Encrypt Key をコピーします
次に、Feishu コンソールでリクエスト URL を設定します:
- イベントとコールバック → イベント購読で、URL にプッシュモードに切り替えます
- URL を
https://your-domain.com/feishu/eventsに設定します - 検証をクリックします。Feishu がチャレンジリクエストを送信し、OpenClaw が自動的に応答します
Webhook モードには外部からアクセス可能な URL が必要です。ドメイン、TLS 証明書、適切なファイアウォール設定が必要になります。ほとんどの環境では WebSocket モードの方がはるかに簡単です。
Feishu マルチエージェントルーティング
複数の AI エージェントを運用している場合、会話ごとに異なるエージェントへルーティングできます。
{
bindings: [
{ agentId: "main", match: { channel: "feishu", peer: { kind: "direct" } } },
{ agentId: "support", match: { channel: "feishu", peer: { kind: "direct", id: "ou_xxxxx" } } },
{ agentId: "team-helper", match: { channel: "feishu", peer: { kind: "group", id: "oc_xxxxxxxxx" } } }
]
}
デフォルトでは、すべての DM は main エージェントにルーティングされます。特定のユーザー(ou_xxxxx など)やグループ(oc_xxxxxxxxx など)を別のエージェントに振り分けたい場合は、match 条件で peer.id を指定してください。ルールは上から順に評価され、最初にマッチした agentId が使用されます。
この機能は、汎用アシスタント、カスタマーサポートエージェント、開発者向けツールエージェントなど、異なるモデルやプロンプトを使い分けつつ、同じ Feishu ボットを通じて運用したい組織に特に役立ちます。
OpenClaw 公式 Feishu プラグイン
公式 Feishu プラグインは ByteDance の Feishu/Lark チームが保守しています。ビルトインプラグイン(ボットとして動作)とは異なり、公式プラグインは OAuth を使用してユーザーの代わりに操作を行います。そのため、ドキュメント、カレンダー、タスク、スプレッドシート、Wiki など、ワークスペース全体にアクセスできます。
動作要件
- OpenClaw 2026.2.26 以上(Linux/macOS)または 2026.3.2 以上(Windows)
- Node.js 22 以上
- npm が PATH に含まれていること
インストール手順
npm config set registry https://registry.npmjs.org curl -o /tmp/feishu-plugin.tgz https://sf3-cn.feishucdn.com/obj/open-platform-opendoc/4d184b1ba733bae2423a89e196a2ef8f_QATOjKH1WN.tgz npm install /tmp/feishu-plugin.tgz -g rm /tmp/feishu-plugin.tgz feishu-plugin-onboard install
feishu-plugin-onboard install コマンドは対話形式のセットアップウィザードを起動します。実行される処理は以下の通りです。
- Feishu の App ID と App Secret の入力を求められます
- ブラウザが開き、OAuth 認証を行います
~/.openclaw/plugins/feishu/config.jsonに設定ファイルが生成されます- OpenClaw インスタンスにプラグインが登録されます
インストール後の確認
プラグインが正しくロードされているか確認します。
openclaw plugins list
出力に feishu-official が表示されていれば成功です。ワークスペース操作をボットに依頼してテストしてみましょう。
@Bot 「エンジニアリング」Wiki スペースの最新ドキュメントを要約して
診断コマンド
プラグインが動作しない場合:
feishu-plugin-onboard doctor # 一般的な問題をチェック feishu-plugin-onboard doctor --fix # 検出された問題を自動修復 feishu-plugin-onboard info --all # プラグインの詳細情報を表示
セキュリティ上の注意: 公式プラグインは、あなた個人の OAuth トークンを使用してワークスペースデータにアクセスします。つまり、あなたがアクセスできるドキュメント、カレンダー、タスクすべてにボットもアクセスできるということです。**共有ボットや共有マシンでは公式プラグインを使用しないでください。**個人の安全な環境でのみ使用してください。
両方のプラグインを同時に使う
ビルトインプラグインと公式プラグインは同時に実行できます。ビルトインプラグインがメッセージングを処理し、公式プラグインがワークスペース操作を処理します。OpenClaw がリクエストの種類に応じて適切なプラグインへ自動ルーティングします。
公式プラグインをアンインストールせずに無効化するには:
feishu-plugin-onboard disable
OpenClaw Feishu 連携のトラブルシューティング
「入力欄が表示されない」— ユーザーがボットにメッセージを送れない
原因: イベント購読が未設定、またはアプリが未公開です。
解決方法:
- イベントとコールバックで
im.message.receive_v1が追加されているか確認します - 接続方式が「長時間接続」に設定されているか確認します
- アプリが公開されているか確認します(バージョン管理で有効なバージョンがあるか確認)
- ゲートウェイを再起動します:
openclaw gateway restart
「アプリが長時間接続を確立していません」エラー
原因: Feishu のイベント購読が WebSocket 接続を期待しているが、OpenClaw がまだ接続していません。
解決方法:
- 設定ファイルで
connectionModeが"websocket"になっているか確認します - ゲートウェイを再起動します:
openclaw gateway restart - ログを確認します:
openclaw logs --followで WebSocket 接続メッセージを探します - 厳格なプロキシ環境の場合、WebSocket の発信接続がブロックされていないか確認します
ボットはオンラインだがメッセージに応答しない
原因: ペアリングの問題、または DM ポリシーの設定ミスです。
解決方法:
- ユーザーがペアリング済みか確認します:
openclaw pairing list feishu pairingモードの場合、ユーザーを承認します:openclaw pairing approve feishu <CODE>- ペアリングなしで誰でもチャットできるようにするには、
dmPolicy: "open"に設定します - ログでエラーを確認します:
openclaw logs --follow
ボットがグループチャットで応答しない
原因: @メンションが必要なのにメンションされていない、またはグループポリシーがグループをブロックしています。
解決方法:
groupPolicyが"open"か、対象グループが許可リストに含まれているか確認しますrequireMentionがtrueの場合、ユーザーはボットを @メンションする必要があります- ボットが実際にグループのメンバーであるか確認します
im:message.group_msg権限が有効になっているか確認します
「メッセージ送信失敗」または「send_as_bot」エラー
原因: im:message:send_as_bot 権限が不足しているか、権限追加後にアプリが再公開されていません。
解決方法:
- 開発者コンソールで権限が有効になっているか確認します
- 新しいバージョンを作成して公開します。権限の変更には新しいリリースが必要です
- ゲートウェイを再起動します
ビルトインプラグインと公式プラグインが競合する
原因: 両方のプラグインが同じイベントを処理しようとしています。
解決方法:
- 通常は問題ありません。OpenClaw がイベントの重複を排除します。二重応答が発生する場合は、いずれかを無効化してください:
feishu-plugin-onboard disable # 公式プラグインを無効化 # または openclaw channels disable feishu # ビルトインプラグインを無効化
- 実際にどちらのプラグインが必要か再検討してください。ほとんどの場合、ビルトインプラグインだけで十分です
Windows:公式プラグインインストール時の ENOENT エラー
原因: npm がダウンロードした .tgz ファイルを見つけられません。Windows のパス問題が原因であることが多いです。
解決方法:
- 絶対パスを指定してください:
npm install C:\Users\YourName\Downloads\feishu-plugin.tgz -g
- ターミナルを管理者として実行しているか確認します
- Node.js のバージョンを確認します:
node --version(22 以上が必要)
OpenClaw Feishu コマンドリファレンス
| コマンド | 説明 |
|---|---|
openclaw channels add | 対話形式でチャネルをセットアップ |
openclaw channels disable feishu | Feishu チャネルを無効化 |
openclaw channels enable feishu | Feishu チャネルを再有効化 |
openclaw gateway | ゲートウェイを起動 |
openclaw gateway restart | ゲートウェイを再起動 |
openclaw gateway status | 接続状態を確認 |
openclaw pairing list feishu | ペアリング済み Feishu ユーザーの一覧 |
openclaw pairing approve feishu <CODE> | ペアリングリクエストを承認 |
openclaw pairing revoke feishu <USER> | ユーザーのアクセスを取り消し |
openclaw logs --follow | ゲートウェイのログをリアルタイム表示 |
feishu-plugin-onboard install | 公式プラグインをインストール |
feishu-plugin-onboard doctor | 公式プラグインの問題を診断 |
feishu-plugin-onboard doctor --fix | 検出された問題を自動修復 |
feishu-plugin-onboard info --all | プラグインの詳細情報を表示 |
FAQ
パブリック IP やドメインは必要ですか?
いいえ、不要です。WebSocket モード(デフォルト)はマシンから Feishu サーバーへの発信接続を使用します。インバウンドトラフィックもポートフォワーディングも DNS レコードも不要です。唯一の例外は Webhook モードで、こちらは外部からアクセス可能な URL が必要です。
Feishu と Lark の違いは何ですか?
Feishu は中国本土向け、Lark は国際版です。インフラは分離されていますが、機能と API は同じです。設定上の違いは domain フィールドだけです。"feishu" または "lark" を指定してください。App ID と Secret は、作成したプラットフォームでのみ有効です。
ビルトインプラグインと公式プラグインのどちらを使うべきですか?
メッセージの送受信やチャット内の共有コンテンツ閲覧が目的なら、ビルトインプラグインで十分です。ドキュメントの閲覧、カレンダー管理、タスク作成、スプレッドシートの操作といったワークスペース全体へのアクセスが必要なら、公式プラグインを使用してください。両方を同時に運用することも可能です。
Feishu と他のチャネルを同時に使えますか?
はい。OpenClaw は複数チャネルの同時運用に対応しています。Feishu、Telegram、Discord、WhatsApp など、さまざまなチャネルを同時に接続し、同じエージェントまたは異なるエージェントに割り当てることができます。openclaw channels add で追加してください。
応答が遅い場合の対処法は?
- ストリーミングを有効にする(
streaming: true)— 生成途中の応答がリアルタイムに表示されるため、ユーザーはすぐにテキストが現れるのを確認できます - モデルを見直す — 大規模モデルは処理に時間がかかります。日常的なクエリにはより高速なモデルを試してみてください
- ネットワークレイテンシを確認する — OpenClaw インスタンスが Feishu サーバーから遠い場合、応答が遅く感じられます
- プロンプトを見直す — 長いシステムプロンプトは処理時間を増加させます
App Secret が漏洩した場合はどうすればいいですか?
- ただちに Feishu 開発者コンソールにアクセスします
- 認証情報と基本情報に移動します
- App Secret の横にあるリセットをクリックします
- 新しいシークレットをコピーします
~/.openclaw/openclaw.jsonを新しい値で更新します- ゲートウェイを再起動します:
openclaw gateway restart - 旧シークレットは即座に無効化されるため、個別セッションの取り消しは不要です
Feishu 設定完了後の次のステップ
Feishu/Lark 連携が稼働したら、OpenClaw の他の機能もぜひ活用してください。
- 50 以上の対応チャネル一覧 — 他のプラットフォームも接続できます
- スキルディレクトリ — AI アシスタントにできることを確認
- トラブルシューティングガイド — 全チャネル共通の問題を解決
- 初心者向け完全ガイド — OpenClaw をゼロから学ぶ
- Telegram 連携ガイド — Telegram も追加チャネルとして設定
- Discord 連携ガイド — Gateway Intents を使った Discord のセットアップ