Files
openclaw-backups/skills/openclaw-self-healing/discord-setup.md

208 lines
5.4 KiB
Markdown

# Discord 확장형 설정 가이드
## 🚨 보안: 토큰 재발급 필수
토큰이 노출되었으므로 즉시 재발급하세요.
1. Discord Developer Portal → Your App → Bot
2. "Reset Token" 클릭
3. 새 토큰 복사 (한 번만 보여줌)
## 🎯 확장형 권한 설정
### 1단계: Bot Permissions (OAuth2 → URL Generator)
**Scopes:**
- ✅ bot
- ✅ applications.commands
**Bot Permissions (확장형):**
**Text Permissions:**
- ✅ View Channels
- ✅ Send Messages
- ✅ Send Messages in Threads
- ✅ Create Public Threads
- ✅ Create Private Threads
- ✅ Embed Links
- ✅ Attach Files
- ✅ Add Reactions
- ✅ Use External Emojis
- ✅ Use External Stickers
- ✅ Mention @everyone, @here, and All Roles
- ✅ Manage Messages (메시지 편집/삭제)
- ✅ Manage Threads (스레드 관리)
- ✅ Read Message History
- ✅ Use Slash Commands
**Voice Permissions (선택):**
- ✅ Connect (음성 채널 접속)
- ✅ Speak (음성 전송)
**Advanced Permissions (선택적 - 주의):**
- ⚠️ Manage Channels (채널 생성/수정 - 필요 시만)
- ⚠️ Manage Roles (역할 관리 - 필요 시만)
- ❌ Administrator (절대 주지 마세요 - 보안 위험)
### 2단계: Intents 활성화
Bot → Privileged Gateway Intents:
- ✅ Presence Intent (온라인/오프라인 상태)
- ✅ Server Members Intent (멤버 목록 조회)
- ✅ Message Content Intent (필수 - 메시지 읽기)
### 3단계: OpenClaw 확장 설정
`~/.openclaw/config.yml` 파일:
```yaml
channels:
discord:
enabled: true
token: "YOUR_NEW_BOT_TOKEN" # 재발급한 토큰
# DM 설정
dm:
enabled: true
policy: "pairing" # 첫 접촉 시 승인 필요
allowFrom: ["YOUR_DISCORD_USER_ID"]
# 파일 업로드 제한
mediaMaxMb: 25 # Discord 기본 25MB (Nitro는 500MB)
# 메시지 청킹
textChunkLimit: 2000
maxLinesPerMessage: 30
chunkMode: "newline" # 문단 단위로 나누기
# 확장 기능 활성화
actions:
reactions: true # 반응 추가
stickers: true # 스티커 전송
emojiUploads: true # 이모지 업로드
polls: true # 투표 생성
messages: true # 메시지 편집/삭제
threads: true # 스레드 생성/관리
pins: true # 메시지 고정
search: true # 메시지 검색
memberInfo: true # 멤버 정보 조회
roleInfo: true # 역할 정보 조회
channelInfo: true # 채널 정보 조회
channels: true # 채널 생성/관리
voiceStatus: true # 음성 상태 조회
events: true # 이벤트 생성
roles: false # 역할 부여 (위험 - 필요 시만)
moderation: false # 타임아웃/킥/밴 (위험)
# 서버(길드) 설정 (선택)
guilds:
"YOUR_GUILD_ID": # 서버 ID (우클릭 → Copy Server ID)
requireMention: false # 멘션 없이도 응답
users: ["YOUR_DISCORD_USER_ID"] # 허용된 사용자
channels:
general: # 채널 이름
allow: true
requireMention: false
# 리플라이 모드
replyToMode: "first" # off | first | all
# 재시도 정책
retry:
attempts: 3
minDelayMs: 500
maxDelayMs: 30000
jitter: 0.1
```
### 4단계: Discord ID 확인
Discord에서 Developer Mode 켜기:
1. 설정(톱니바퀴) → 고급 → Developer Mode ON
2. 우클릭으로 ID 복사:
- 프로필 우클릭 → "Copy User ID"
- 서버 이름 우클릭 → "Copy Server ID"
- 채널 우클릭 → "Copy Channel ID"
### 5단계: 환경변수 방식 (대안)
config.yml 대신 환경변수로도 가능:
```bash
export DISCORD_BOT_TOKEN="YOUR_NEW_TOKEN"
```
그 후 Gateway 재시작:
```bash
openclaw gateway restart
```
### 6단계: Pairing 승인
DM으로 봇에게 메시지 보내면 pairing code가 나옵니다:
```bash
openclaw pairing list
openclaw pairing approve discord <CODE>
```
## 🎮 확장 기능 사용법
### 반응(Reaction) 추가
Discord에서 메시지에 이모지 반응을 달 수 있습니다.
### 스레드 생성
긴 대화를 스레드로 정리할 수 있습니다.
### 메시지 편집/삭제
봇이 보낸 메시지를 수정하거나 삭제할 수 있습니다.
### 파일 업로드
25MB까지 파일을 첨부할 수 있습니다.
### 투표(Poll) 생성
Discord 네이티브 투표 기능을 사용할 수 있습니다.
## 🔍 트러블슈팅
### 봇이 응답 안 함
1. Intents가 모두 켜져 있는지 확인
2. 초대 URL이 올바른 권한으로 생성됐는지 확인
3. `openclaw doctor` 실행
4. `openclaw channels status --probe` 실행
### Permission 에러
봇에게 채널 접근 권한이 있는지 확인하세요.
### Rate Limit
Discord API는 rate limit이 있습니다. 너무 많은 메시지를 빠르게 보내면 제한됩니다.
## ⚡ 빠른 시작 요약
1. 토큰 재발급 (Reset Token)
2. Intents 3개 모두 켜기
3. 초대 URL 재생성 (확장 권한 포함)
4. 서버에 재초대
5. config.yml 업데이트
6. `openclaw gateway restart`
7. DM 테스트 → pairing 승인
## 📋 체크리스트
- [ ] 토큰 재발급 완료
- [ ] Intents 3개 활성화
- [ ] 확장 권한으로 초대 URL 생성
- [ ] 서버에 봇 재초대
- [ ] config.yml 작성
- [ ] Gateway 재시작
- [ ] DM 테스트
- [ ] Pairing 승인
- [ ] 첫 대화 성공
---
작성일: 2026-02-04