Moltbot 채널 연동 가이드
작성일: 2026-01-30
이 문서는 Moltbot에서 지원하는 주요 메시징 채널의 연동 방법을 설명합니다. 해당 내용을 이해하면, 여러가지 메신저들을 연동할 수 있는 아이디어를 얻을 수 있을 것입니다.
목차
채널 비교 요약
| 항목 | Discord | Telegram | Slack | LINE | iMessage | |
|---|---|---|---|---|---|---|
| 연결 방식 | WebSocket | Webhook/Polling | WebSocket/Webhook | HTTP Webhook | Baileys WebSocket | 로컬 RPC |
| API 유형 | 공식 API | 공식 Bot API | 공식 API | 공식 Messaging API | 비공식 (역엔지니어링) | 비공식 (imsg CLI) |
| 인증 | Bot Token | Bot Token | Bot + App Token | Channel Token + Secret | QR 코드 스캔 | macOS 로그인 |
| 계정 유형 | Discord 봇 | Telegram 봇 | Slack 앱 | LINE 봇 | 개인 WhatsApp | 개인 Apple ID |
| 서버 요구사항 | 어디서든 | 어디서든 | 어디서든 | 어디서든 | 어디서든 | Mac 필수 |
| 공개 URL 필요 | 불필요 | 선택 (Webhook 시) | 선택 (HTTP 시) | 필요 | 불필요 | 불필요 |
| 안정성 | 높음 | 높음 | 높음 | 높음 | 낮음 | 중간 |
| 메시지 제한 | 2,000자 | 4,096자 | 4,000자 | 5,000자 | 4,000자 | 제한 없음 |
1. Discord
개요
Discord는 WebSocket Gateway를 통한 실시간 양방향 연결 방식을 사용합니다. 공식 API를 사용하므로 안정적입니다.
연결 구조
Moltbot ◄──── WebSocket (상시 연결) ────► Discord Gateway │ 메시지 수신: Gateway 이벤트 푸시 │ 메시지 발신: REST API 호출 ◄──────────────────┘
설정 방법
1단계: Discord Developer Portal에서 봇 생성
- Discord Developer Portal 접속
- New Application 클릭 → 앱 이름 입력
- Bot 섹션 → Add Bot 클릭
- Token 복사 (Reset Token으로 재생성 가능)
- Privileged Gateway Intents 필요시 활성화:
- MESSAGE CONTENT INTENT (메시지 내용 읽기)
- SERVER MEMBERS INTENT (멤버 목록)
- PRESENCE INTENT (온라인 상태)
2단계: 봇 초대 링크 생성
- OAuth2 → URL Generator
- Scopes:
bot,applications.commands - Bot Permissions: 필요한 권한 선택
- 생성된 URL로 서버에 봇 초대
3단계: Moltbot 설정
{ "channels": { "discord": { "enabled": true, "token": "YOUR_BOT_TOKEN" } } }
또는 환경 변수:
DISCORD_BOT_TOKEN=your_bot_token
고급 설정
{ "channels": { "discord": { "enabled": true, "token": "${DISCORD_BOT_TOKEN}", "textChunkLimit": 2000, "mediaMaxMb": 8, "dm": { "enabled": true, "policy": "pairing", "allowFrom": ["123456789", "username#1234"] }, "guilds": { "my-server-id": { "requireMention": true, "channels": { "bot-channel-id": { "allow": true, "requireMention": false } } } }, "intents": { "presence": false, "guildMembers": false } } } }
주요 기능
| 기능 | 설명 |
|---|---|
| 슬래시 명령 | /ask, /help 등 네이티브 명령어 |
| 스레드 | 메시지에 스레드 생성 |
| 리액션 | 이모지 반응 추적 및 처리 |
| 권한 시스템 | 역할 기반 채널별 권한 |
| 투표 | 네이티브 투표 기능 |
| 멀티 서버 | 여러 Discord 서버에서 동시 운영 |
2. Telegram
개요
Telegram은 grammY 프레임워크를 사용하여 공식 Bot API와 연결합니다. Webhook 또는 Polling 방식을 선택할 수 있습니다.
연결 구조
┌─ Webhook 모드 ─────────────────────────────────────┐ │ Telegram 서버 ──── HTTP POST ────► Moltbot │ └────────────────────────────────────────────────────┘ ┌─ Polling 모드 ─────────────────────────────────────┐ │ Moltbot ──── getUpdates 요청 ────► Telegram 서버 │ └────────────────────────────────────────────────────┘
설정 방법
1단계: BotFather에서 봇 생성
- Telegram에서 @BotFather 검색
/newbot명령 실행- 봇 이름 및 username 입력
- Bot Token 수령 (형식:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
2단계: Moltbot 설정
{ "channels": { "telegram": { "enabled": true, "botToken": "YOUR_BOT_TOKEN" } } }
또는 환경 변수:
TELEGRAM_BOT_TOKEN=your_bot_token
Webhook 모드 설정 (선택)
공개 서버가 있는 경우 Webhook 모드가 더 효율적입니다:
{ "channels": { "telegram": { "enabled": true, "botToken": "${TELEGRAM_BOT_TOKEN}", "webhookUrl": "https://your-server.com/telegram-webhook", "webhookSecret": "${TELEGRAM_WEBHOOK_SECRET}" } } }
고급 설정
{ "channels": { "telegram": { "enabled": true, "botToken": "${TELEGRAM_BOT_TOKEN}", "dmPolicy": "pairing", "groupPolicy": "open", "allowFrom": [12345678, "@username"], "reactionNotifications": "own", "reactionLevel": "minimal", "streamMode": "partial", "textChunkLimit": 4000, "mediaMaxMb": 5, "historyLimit": 20, "commands": { "native": true }, "groups": { "-1001234567890": { "requireMention": true, "systemPrompt": "그룹 전용 프롬프트" } } } } }
주요 기능
| 기능 | 설명 |
|---|---|
| 이모지 리액션 | 메시지에 이모지 반응 |
| 포럼 토픽 | 토픽별 독립 세션 |
| 네이티브 명령 | /start, /help 등 |
| 스트리밍 | 실시간 응답 스트리밍 |
| 음성 메시지 | 음성 메시지 송수신 |
| 인라인 버튼 | 인터랙티브 키보드 |
접근 정책
| DM 정책 | 설명 |
|---|---|
pairing | 모르는 사용자에게 페어링 코드 발송 |
allowlist | allowFrom 목록의 사용자만 허용 |
open | 모든 DM 허용 |
disabled | 모든 DM 차단 |
| 그룹 정책 | 설명 |
|---|---|
open | 멘션 게이팅만 적용 |
allowlist | groupAllowFrom 목록만 허용 |
disabled | 모든 그룹 메시지 차단 |
3. Slack
개요
Slack은 @slack/bolt 프레임워크를 사용하며, Socket Mode(WebSocket) 또는 HTTP Mode(Webhook)를 선택할 수 있습니다.
연결 구조
┌─ Socket Mode (기본) ───────────────────────────────┐ │ Moltbot ◄──── WebSocket ────► Slack 서버 │ │ 필요: Bot Token + App Token │ └────────────────────────────────────────────────────┘ ┌─ HTTP Mode ────────────────────────────────────────┐ │ Slack 서버 ──── HTTP POST ────► Moltbot │ │ 필요: Bot Token + Signing Secret │ └────────────────────────────────────────────────────┘
설정 방법
1단계: Slack App 생성
- Slack API 접속
- Create New App → From scratch
- 앱 이름 및 워크스페이스 선택
2단계: 권한 설정
OAuth & Permissions → Bot Token Scopes 추가:
chat:write- 메시지 전송channels:history- 채널 히스토리 읽기groups:history- 비공개 채널 히스토리im:history- DM 히스토리reactions:read- 리액션 읽기reactions:write- 리액션 추가files:write- 파일 업로드users:read- 사용자 정보
3단계: Socket Mode 활성화 (권장)
- Socket Mode → Enable Socket Mode
- App-Level Token 생성 (scope:
connections:write) - App Token 복사 (형식:
xapp-1-...)
4단계: 이벤트 구독
Event Subscriptions → Enable Events → Subscribe to bot events:
message.channelsmessage.groupsmessage.imapp_mentionreaction_added
5단계: 앱 설치
Install App → Install to Workspace → Bot Token 복사 (형식: xoxb-...)
6단계: Moltbot 설정
{ "channels": { "slack": { "enabled": true, "mode": "socket", "accounts": { "default": { "botToken": "xoxb-your-bot-token", "appToken": "xapp-1-your-app-token" } } } } }
또는 환경 변수:
SLACK_BOT_TOKEN=xoxb-your-bot-token SLACK_APP_TOKEN=xapp-1-your-app-token
HTTP Mode 설정
{ "channels": { "slack": { "enabled": true, "mode": "http", "accounts": { "default": { "botToken": "xoxb-your-bot-token", "signingSecret": "your-signing-secret", "webhookPath": "/slack/events" } } } } }
고급 설정
{ "channels": { "slack": { "enabled": true, "mode": "socket", "replyToMode": "first", "accounts": { "default": { "botToken": "${SLACK_BOT_TOKEN}", "appToken": "${SLACK_APP_TOKEN}", "textChunkLimit": 4000, "mediaMaxMb": 20, "reactionNotifications": "own", "slashCommand": { "enabled": true, "name": "ask", "ephemeral": true } } }, "dm": { "policy": "open" }, "channels": { "C1234567890": { "enabled": true, "users": ["U1111111111", "U2222222222"] } } } } }
주요 기능
| 기능 | 설명 |
|---|---|
| 스레드 | 메시지 스레드 지원 |
| 리액션 | 이모지 리액션 추가/제거 |
| 슬래시 명령 | /ask 등 커스텀 명령 |
| 파일 업로드 | 미디어 파일 전송 |
| 메시지 편집 | 보낸 메시지 수정 |
| 핀 | 메시지 고정 |
스레드 모드
| 모드 | 설명 |
|---|---|
off | 스레드 없이 채널에 직접 응답 |
first | 첫 응답만 스레드, 이후 채널 |
all | 모든 응답을 스레드로 |
4. LINE
개요
LINE은 공식 Messaging API를 사용하며, HTTP Webhook 방식으로 메시지를 수신합니다.
연결 구조
LINE 사용자 ──► LINE 서버 ──── HTTP POST ────► Moltbot ◄──── REST API 응답 ────
설정 방법
1단계: LINE Developers에서 채널 생성
- LINE Developers Console 접속
- Provider 생성 (또는 기존 선택)
- Create a Messaging API channel
- 채널 정보 입력
2단계: 채널 설정
- Messaging API 탭에서:
- Channel access token 발급 (Issue 버튼)
- Channel secret 확인 - Webhook URL 설정:
https://your-server.com/line/webhook - Use webhook 활성화
3단계: Moltbot 설정
{ "channels": { "line": { "enabled": true, "channelAccessToken": "YOUR_CHANNEL_ACCESS_TOKEN", "channelSecret": "YOUR_CHANNEL_SECRET", "webhookPath": "/line/webhook" } } }
또는 환경 변수:
LINE_CHANNEL_ACCESS_TOKEN=your_access_token LINE_CHANNEL_SECRET=your_channel_secret
고급 설정
{ "channels": { "line": { "enabled": true, "channelAccessToken": "${LINE_CHANNEL_ACCESS_TOKEN}", "channelSecret": "${LINE_CHANNEL_SECRET}", "dmPolicy": "allowlist", "allowFrom": ["U1234567890abcdef"], "groupPolicy": "open", "mediaMaxMb": 10, "webhookPath": "/line/webhook", "groups": { "C1234567890abcdef": { "enabled": true, "requireMention": true } } } } }
주요 기능
| 기능 | 설명 |
|---|---|
| Flex Message | 리치 레이아웃 메시지 |
| Quick Reply | 버튼 제안 (최대 13개) |
| 템플릿 메시지 | 버튼, 확인, 캐러셀 |
| 미디어 | 이미지, 동영상, 오디오 |
| 위치 | 지도 좌표 전송 |
| 스티커 | LINE 스티커 지원 |
특이사항
- 공개 URL 필수: LINE 서버가 Webhook을 보내려면 인터넷에서 접근 가능한 HTTPS URL이 필요합니다.
- 서명 검증: 모든 Webhook 요청은 HMAC-SHA256 서명으로 검증됩니다.
- 응답 시간: Webhook 수신 후 3초 이내에 200 OK 응답 필요.
5. WhatsApp
개요
WhatsApp은 Baileys 라이브러리를 사용하여 WhatsApp Web 프로토콜로 연결합니다. 비공식 API이므로 안정성이 보장되지 않습니다.
연결 구조
1. Moltbot이 QR 코드 생성 2. 사용자가 WhatsApp 앱에서 QR 스캔 (연결된 기기) 3. Baileys가 WhatsApp Web 프로토콜로 WebSocket 연결 4. 메시지 송수신
설정 방법
1단계: 기본 설정
{ "channels": { "whatsapp": { "accounts": { "default": { "enabled": true } } } } }
2단계: QR 코드로 로그인
moltbot channels add whatsapp
- 터미널에 QR 코드가 표시됩니다.
- 휴대폰 WhatsApp 열기 → 설정 → 연결된 기기 → 기기 연결
- QR 코드 스캔
- 인증 완료 → 자격 증명이 저장됩니다.
인증 정보 저장 위치
~/.clawdbot/oauth/whatsapp/{accountId}/creds.json
고급 설정
{ "channels": { "whatsapp": { "accounts": { "default": { "enabled": true, "dmPolicy": "allowlist", "allowFrom": ["+821012345678", "+821098765432"], "groupPolicy": "open", "mediaMaxMb": 50, "textChunkLimit": 4000, "sendReadReceipts": true, "debounceMs": 1000 } } } } }
주요 기능
| 기능 | 설명 |
|---|---|
| 개인 계정 사용 | 별도 봇 계정 불필요 |
| 멀티 계정 | 여러 WhatsApp 계정 연결 |
| 미디어 | 이미지, 동영상, 오디오, 문서 |
| 그룹 | 그룹 채팅 지원 |
| 투표 | WhatsApp 투표 생성 |
| 리액션 | 이모지 리액션 |
제한사항 및 주의사항
| 항목 | 설명 |
|---|---|
| 비공식 API | WhatsApp 업데이트 시 작동 중단 가능 |
| 세션 만료 | 휴대폰에서 로그아웃하면 재인증 필요 |
| 감지 위험 | "비정상적인 활동" 경고 가능 |
| 연결 기기 제한 | WhatsApp의 연결 기기 수 제한 적용 |
| 안정성 | 공식 API가 아니므로 장기 사용 보장 불가 |
6. iMessage
개요
iMessage는 imsg CLI를 통해 macOS의 Messages 앱과 연동합니다. Mac이 필수이며, Messages 앱에 이미 로그인되어 있어야 합니다.
연결 구조
Mac에서 Apple ID로 Messages 앱에 로그인 (사전 필수) ↓ Messages 앱이 ~/Library/Messages/chat.db에 메시지 저장 ↓ imsg CLI가 chat.db를 읽고 AppleScript로 메시지 전송 ↓ Moltbot이 imsg CLI를 RPC로 제어
설정 방법
1단계: 시스템 요구사항 확인
- macOS가 설치된 Mac
- Messages 앱에 Apple ID로 로그인
- Full Disk Access 권한
2단계: imsg CLI 설치
brew install steipete/tap/imsg
3단계: macOS 권한 설정
- 시스템 설정 → 개인 정보 보호 및 보안 → 전체 디스크 접근
- Moltbot과 imsg에 권한 부여
- 첫 실행 시 자동화 권한 팝업 승인
4단계: Moltbot 설정
{ "channels": { "imessage": { "enabled": true, "cliPath": "/usr/local/bin/imsg", "dbPath": "/Users/YOUR_USERNAME/Library/Messages/chat.db" } } }
고급 설정
{ "channels": { "imessage": { "enabled": true, "cliPath": "/usr/local/bin/imsg", "dbPath": "/Users/YOUR_USERNAME/Library/Messages/chat.db", "dmPolicy": "allowlist", "allowFrom": ["+821012345678", "friend@icloud.com"], "groupPolicy": "allowlist", "mediaMaxMb": 16, "textChunkLimit": 4000, "includeAttachments": true } } }
원격 Mac 설정 (SSH)
다른 Mac에서 iMessage 실행:
{ "channels": { "imessage": { "enabled": true, "cliPath": "~/.clawdbot/scripts/imsg-ssh", "remoteHost": "user@192.168.1.100", "dbPath": "/Users/remote-user/Library/Messages/chat.db" } } }
래퍼 스크립트 (~/.clawdbot/scripts/imsg-ssh):
#!/usr/bin/env bash exec ssh -T user@192.168.1.100 imsg "$@"
접근 정책
| 정책 | 설명 |
|---|---|
pairing | 모르는 발신자에게 1시간 유효 페어링 코드 발송 |
allowlist | 허용 목록의 번호/이메일만 허용 |
open | 모든 DM 허용 |
disabled | 모든 DM 차단 |
주요 기능
| 기능 | 설명 |
|---|---|
| 개인 Apple ID | 본인의 iMessage 계정 사용 |
| 미디어 | 이미지, 파일 송수신 |
| 그룹 | iMessage 그룹 채팅 지원 |
| SMS 폴백 | iMessage 불가 시 SMS 전송 |
문제 해결
| 문제 | 해결 방법 |
|---|---|
| "imsg not found" | brew install steipete/tap/imsg |
| "permission denied" | 시스템 설정에서 Full Disk Access 권한 부여 |
| "database locked" | Messages 앱 재시작 후 재시도 |
| SSH 래퍼 멈춤 | 비밀번호 없는 SSH 설정 (ssh-copy-id) |
부록: 환경 변수 요약
| 채널 | 환경 변수 |
|---|---|
| Discord | DISCORD_BOT_TOKEN |
| Telegram | TELEGRAM_BOT_TOKEN |
| Slack | SLACK_BOT_TOKEN, SLACK_APP_TOKEN |
| LINE | LINE_CHANNEL_ACCESS_TOKEN, LINE_CHANNEL_SECRET |
| (환경 변수 없음, QR 인증) | |
| iMessage | (환경 변수 없음, macOS 로그인) |
부록: 공식 API vs 비공식 API
┌────────────────────────────────────────────────────────────────┐ │ 공식 API 비공식 API │ ├────────────────────────────────────────────────────────────────┤ │ Discord (Bot Token) WhatsApp (Baileys) │ │ Telegram (Bot Token) iMessage (imsg CLI) │ │ Slack (Bot + App Token) │ │ LINE (Channel Token) │ ├────────────────────────────────────────────────────────────────┤ │ 장점: 장점: │ │ - 안정적 - 개인 계정 사용 가능 │ │ - 공식 지원 - 별도 봇 계정 불필요 │ │ - 문서화 완비 │ │ │ │ 단점: 단점: │ │ - 봇 전용 계정 필요 - 업데이트에 취약 │ │ - 일부 기능 제한 - 언제든 막힐 수 있음 │ │ - 공식 지원 없음 │ └────────────────────────────────────────────────────────────────┘

댓글
댓글을 작성하려면 이 필요합니다.