> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # ChannelProvider `ChannelProvider` est l’interface que les intégrations de plateformes implémentent pour connecter les Agents à une plateforme de messagerie. Un fournisseur gère l’ensemble du cycle de vie d’une intégration : provisionnement de l’application et OAuth, acheminement des webhooks et traitement des événements, création des Adapters et connexion aux Agents, ainsi que gestion des identifiants d’authentification. Enregistrez les fournisseurs dans la propriété `channels` du constructeur `Mastra`, sous un ID de votre choix. Les routes de chaque fournisseur sont automatiquement fusionnées avec les routes d’API du serveur, et `initialize()` s’exécute au démarrage de Mastra. ```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, }), }, }) ``` La propriété `baseUrl` du fournisseur est l’URL publique à laquelle la plateforme envoie les webhooks et les événements. En production, il s’agit de l’URL de votre serveur Mastra déployé. Lors du développement local, la plateforme ne peut pas atteindre `http://localhost:4111`. Exécutez donc un tunnel, tel que [cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) ou [ngrok](https://ngrok.com/), et faites pointer `baseUrl` vers l’URL du tunnel, par exemple `https://abc123.trycloudflare.com`, afin que les événements atteignent votre processus de développement local. [`SlackProvider`](https://mastra.zisheng.pro/fr/reference/channels/slack-provider) est la première implémentation intégrée. Créez un fournisseur personnalisé en implémentant cette interface. ## Propriétés **id** (`string`): Identifiant unique de ce type de Channel, par exemple 'slack' ou 'discord'. Utilisé comme clé pour acheminer les événements et rechercher le fournisseur dans Mastra. ## Méthodes **getRoutes** (`() => ApiRoute[]`): Renvoie les routes d’API de ce Channel (OAuth, webhooks et événements). Elles sont automatiquement fusionnées avec les apiRoutes du serveur. **initialize** (`() => Promise`): Appelée lors de l’initialisation de Mastra, après l’enregistrement de tous les Agents. Utilisez-la pour une configuration asynchrone, telle que la restauration des installations actives. Ne provisionne pas de nouvelles applications. **configure** (`(credentials: Record | null) => void | Promise`): Fournit ou efface les identifiants d’authentification de la plateforme au moment de l’exécution. Transmettez null pour effacer les identifiants et supprimer les tokens enregistrés. **getInfo** (`() => ChannelPlatformInfo`): Renvoie les métadonnées de découverte destinées à l’interface de l’Editor : nom de la plateforme, état de la configuration et schéma des options de connexion. **connect** (`(agentId: string, options?: Record) => Promise`): Connecte un Agent à la plateforme. Renvoie un résultat discriminé qui décrit le flux d’autorisation requis pour terminer la connexion. **disconnect** (`(agentId: string) => Promise`): Déconnecte un Agent de la plateforme. Supprime l’application de la plateforme et nettoie l’état enregistré. **listInstallations** (`() => Promise`): Répertorie les installations actives de cette plateforme. Renvoie uniquement des informations publiques, jamais de secrets. ## Accéder à un fournisseur Accédez à un fournisseur enregistré au moyen de l’accesseur `channels`, sous l’ID utilisé lors de son enregistrement. Le type de l’accesseur est dérivé de la configuration du constructeur ; `mastra.channels.slack` est donc le fournisseur concret avec l’ensemble de ses méthodes. ```typescript await mastra.channels.slack.configure({ refreshToken }) ``` Lorsque la clé n’est connue qu’au moment de l’exécution, recherchez plutôt le fournisseur à partir de son ID sous forme de chaîne. `getChannelProvider` accepte le type concret comme paramètre générique, et `getChannelProviders` renvoie tous les fournisseurs enregistrés, indexés par ID. ```typescript import type { SlackProvider } from '@mastra/slack' const slack = mastra.getChannelProvider('slack') const all = mastra.getChannelProviders() ``` ## Voir aussi - [SlackProvider](https://mastra.zisheng.pro/fr/reference/channels/slack-provider) - [Channels](https://mastra.zisheng.pro/fr/docs/capabilities/channels/overview)