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.
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 ou ngrok, 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 est la première implémentation intégrée. Créez un fournisseur personnalisé en implémentant cette interface.
PropriétésLien direct vers Propriétés
id:
MéthodesLien direct vers Méthodes
getRoutes:
initialize?:
configure?:
getInfo?:
connect?:
disconnect?:
listInstallations?:
Accéder à un fournisseurLien direct vers 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.
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.
import type { SlackProvider } from '@mastra/slack'
const slack = mastra.getChannelProvider<SlackProvider>('slack')
const all = mastra.getChannelProviders()