> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 채널 제공자 `ChannelProvider`Agent를 메시징 플랫폼에 연결하기 위해 플랫폼 통합이 구현하는 인터페이스입니다. 공급자는 앱 프로비저닝 및 OAuth, 웹훅 라우팅 및 이벤트 처리, 어댑터 생성 및 Agent 연결, 자격 증명 관리 등 통합의 전체 수명주기를 소유합니다. 공급자를 등록하세요.`Mastra` constructor under `channels`, 선택한 ID로 입력됩니다. 각 공급자의 경로는 서버의 API 경로에 자동으로 병합됩니다.`initialize()`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, }), }, }) ``` Provider의 `baseUrl`은 플랫폼이 웹훅과 이벤트를 전송하는 공개 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/ko/reference/channels/slack-provider)최초의 내장 구현입니다. 이 인터페이스를 구현하여 사용자 정의 공급자를 구축합니다. ## 속성 **id** (`string`): 이 채널 유형의 고유 식별자입니다(예: 'slack' 또는 'discord'). 이벤트를 라우팅하고 Mastra에서 Provider를 조회할 때 키로 사용됩니다. ## 행동 양식 **getRoutes** (`() => ApiRoute[]`): 이 채널의 API 경로(OAuth, 웹훅, 이벤트)를 반환합니다. 이 경로는 서버의 apiRoutes에 자동으로 병합됩니다. **initialize** (`() => Promise`): 모든 Agent가 등록된 후 Mastra 초기화 중에 호출됩니다. 활성 설치 복원과 같은 비동기 설정에 사용하세요. 새 앱을 프로비저닝하지는 않습니다. **configure** (`(credentials: Record | null) => void | Promise`): 런타임에 플랫폼 자격 증명을 제공하거나 지웁니다. 자격 증명을 지우고 저장된 토큰을 삭제하려면 null을 전달하세요. **getInfo** (`() => ChannelPlatformInfo`): 편집기 UI를 위한 검색 메타데이터인 플랫폼 이름, 구성 상태, 연결 옵션 스키마를 반환합니다. **connect** (`(agentId: string, options?: Record) => Promise`): Agent를 플랫폼에 연결합니다. 연결을 완료하는 데 필요한 인증 흐름을 설명하는 판별된 결과를 반환합니다. **disconnect** (`(agentId: string) => Promise`): 플랫폼에서 Agent의 연결을 해제합니다. 플랫폼 앱을 삭제하고 저장된 상태를 정리합니다. **listInstallations** (`() => Promise`): 이 플랫폼의 활성 설치를 나열합니다. 공개 정보만 반환하며 비밀 정보는 반환하지 않습니다. ## 공급자에 액세스 등록할 때 사용한 ID를 키로 하는 `channels` getter를 통해 등록된 Provider에 접근하세요. getter의 타입은 생성자 구성에서 추론되므로 `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() ``` ## 관련된 - [Slack공급자](https://mastra.zisheng.pro/ko/reference/channels/slack-provider) - [채널](https://mastra.zisheng.pro/ko/docs/capabilities/channels/overview)