> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # ChannelProvider `ChannelProvider` は、Agent をメッセージングプラットフォームに接続するためにプラットフォーム統合が実装するインターフェースです。Provider は統合のライフサイクル全体を管理します。これには、アプリのプロビジョニングと OAuth、Webhook のルーティングとイベント処理、Adapter の作成と Agent への接続、認証情報の管理が含まれます。 Provider は、任意の ID をキーとして `Mastra` コンストラクターの `channels` に登録します。各 Provider のルートはサーバーの API ルートに自動的に統合され、Mastra の起動時に `initialize()` が実行されます。 ```typescript import { Mastra } from '@mastra/core/mastra' import { SlackProvider } from '@mastra/slack' export const mastra = new Mastra({ channels: { slack: new SlackProvider({ refreshToken: process.env.SLACK_REFRESH_TOKEN!, baseUrl: process.env.MASTRA_BASE_URL, }), }, }) ``` Provider の `baseUrl` は、プラットフォームが Webhook とイベントを送信する公開 URL です。本番環境では、デプロイ済みの Mastra サーバーの URL を指定します。ローカル開発ではプラットフォームから `http://localhost:4111` にアクセスできないため、[cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) や [ngrok](https://ngrok.com/) などのトンネルを実行し、イベントがローカルの開発プロセスに届くように `baseUrl` をトンネル URL(例:`https://abc123.trycloudflare.com`)に設定します。 最初の組み込み実装は [`SlackProvider`](https://mastra.zisheng.pro/ja/reference/channels/slack-provider) です。カスタム Provider を構築するには、このインターフェースを実装します。 ## プロパティ **id** (`string`): この Channel タイプの一意な識別子(例:'slack'、'discord')。イベントのルーティングや、Mastra から Provider を取得する際のキーとして使用されます。 ## メソッド **getRoutes** (`() => ApiRoute[]`): この Channel の API ルート(OAuth、Webhook、イベント)を返します。これらはサーバーの apiRoutes に自動的に統合されます。 **initialize** (`() => Promise`): すべての Agent が登録された後、Mastra の初期化中に呼び出されます。アクティブなインストールの復元など、非同期のセットアップに使用します。新しいアプリはプロビジョニングしません。 **configure** (`(credentials: Record | null) => void | Promise`): 実行時にプラットフォームの認証情報を設定または消去します。認証情報を消去して保存済みトークンを削除するには null を渡します。 **getInfo** (`() => ChannelPlatformInfo`): Editor UI 向けの検出メタデータ(プラットフォーム名、設定ステータス、接続オプションのスキーマ)を返します。 **connect** (`(agentId: string, options?: Record) => Promise`): Agent をプラットフォームに接続します。接続の完了に必要な認可フローを示す判別可能な結果を返します。 **disconnect** (`(agentId: string) => Promise`): Agent をプラットフォームから切断します。プラットフォームアプリを削除し、保存済みの状態を消去します。 **listInstallations** (`() => Promise`): このプラットフォームのアクティブなインストールを一覧表示します。公開情報のみを返し、シークレットは返しません。 ## Provider へのアクセス 登録時に使用した ID をキーとして、`channels` ゲッターから登録済み Provider にアクセスします。このゲッターの型はコンストラクター設定から推論されるため、`mastra.channels.slack` はすべてのメソッドを備えた具象 Provider になります。 ```typescript await mastra.channels.slack.configure({ refreshToken }) ``` キーが実行時にしか分からない場合は、代わりに文字列 ID で Provider を検索します。`getChannelProvider` は具象型をジェネリックとして受け取り、`getChannelProviders` は登録済みのすべての Provider を ID をキーとして返します。 ```typescript import type { SlackProvider } from '@mastra/slack' const slack = mastra.getChannelProvider('slack') const all = mastra.getChannelProviders() ``` ## 関連情報 - [SlackProvider](https://mastra.zisheng.pro/ja/reference/channels/slack-provider) - [Channels](https://mastra.zisheng.pro/ja/docs/capabilities/channels/overview)