Discord 포럼 채널에 새 글이 올라오면 해당 내용을 Slack으로 자동 전송하는 봇입니다.
- Discord 봇이 포럼 채널에서 새 스레드(글) 생성 시점을 감지합니다.
- 해당 글의 제목(스레드 이름) 과 첫 메시지 내용, 작성자, 포럼 이름을 Slack으로 보냅니다.
- 특정 포럼만 보내고 싶다면
config.yaml의forum_channel_ids로 채널 ID를 지정할 수 있습니다.
- Discord 봇
- Slack Incoming Webhook URL
- Discord Developer Portal → New Application → 이름 입력 후 생성.
- 왼쪽 Bot → Add Bot → 봇 생성.
- Reset Token으로 토큰 복사 후
config.yaml의discord_token에 넣기 (절대 공개하지 마세요). - Privileged Gateway Intents에서 아래를 켭니다.
- MESSAGE CONTENT INTENT (포럼 글 내용 읽기용)
- SERVER MEMBERS INTENT는 이 기능에는 필수 아님.
- OAuth2 → URL Generator에서:
- Scopes:
bot - Bot Permissions:
Read Messages/View Channels,Read Message History→ 생성된 URL로 서버에 봇 초대.
- Scopes:
- 포럼 채널이 있는 서버에 봇이 들어와 있고, 해당 채널을 봇이 볼 수 있는 권한이 있어야 합니다.
- Slack API → Create New App → From scratch → 앱 이름과 워크스페이스 선택.
- Incoming Webhooks → Activate Incoming Webhooks 켜기.
- Add New Webhook to Workspace → 메시지를 받을 채널 선택 → Webhook URL 복사.
config.yaml의slack_webhook_url에 그 URL을 넣기.
특정 포럼만 Slack으로 보내려면:
- Discord 설정에서 개발자 모드 켜기 (설정 → 앱 설정 → 고급).
- 해당 포럼 채널 우클릭 → 채널 ID 복사.
config.yaml의forum_channel_ids에 채널 ID 목록으로 설정. 비우면 모든 포럼 채널이 대상입니다.
cp config.example.yaml config.yaml
# config.yaml 에서 discord_token, slack_webhook_url (및 필요 시 forum_channel_ids) 수정
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 방법 1: 패키지로 설치 후 실행 (권장)
pip install -e .
python -m discord_forum_slack
# 또는: discord-forum-slack
# 방법 2: 의존성만 설치 후 실행
pip install -r requirements.txt
python -m discord_forum_slack # 프로젝트 루트에서 실행설정 파일 경로: CONFIG_PATH=/path/to/config.yaml python -m discord_forum_slack
| 키 | 필수 | 설명 |
|---|---|---|
discord_token |
✅ | Discord 봇 토큰 |
slack_webhook_url |
✅ | Slack Incoming Webhook URL |
forum_channel_ids |
❌ | 전송할 포럼 채널 ID 목록. 비우면 전체 포럼 |
- 메시지 내용이 비어 옴
Discord Developer Portal에서 봇의 MESSAGE CONTENT INTENT가 켜져 있는지 확인하세요. - Slack에 안 옴
config.yaml의slack_webhook_url이 맞는지, 해당 Slack 앱/채널에 웹후크가 연결돼 있는지 확인하세요. - 특정 포럼만 안 옴
봇이 그 포럼 채널을 볼 수 있는지, 채널 ID가forum_channel_ids에 정확히 들어갔는지 확인하세요.