개요
MagicTradeBot의 Broadcast 기능은 여러 메시징 플랫폼에서 트레이딩 신호를 받을 수 있게 해줍니다. 선호에 따라 하나 또는 모든 플랫폼을 설정할 수 있습니다.
설정 구조
BroadCast:
# WhatsApp 알림
whatsapp_token: null
whatsapp_phone_id: null
# Discord 알림
discord_webhook_url: null
# Instagram 알림
instagram_token: null
# Telegram 알림
telegram_bot_token: null
telegram_chat_id: null
1. WhatsApp 설정
WhatsApp 알림은 Meta WhatsApp Business API를 사용합니다.
필수 조건
- Meta (Facebook) Business 계정
- 인증된 비즈니스 전화번호
- Meta Developer 플랫폼 접근 권한
단계별 설정
1단계: Meta 앱 생성
- Meta for Developers로 이동
- "My Apps" → "Create App" 클릭
- 앱 유형으로 "Business" 선택
- 앱 세부 정보를 입력하고 앱 생성
2단계: WhatsApp 제품 추가
- 앱 대시보드에서 "Add Product" 클릭
- "WhatsApp"을 찾아 "Set Up" 클릭
- Business Portfolio 선택 또는 생성
3단계: 자격 증명 얻기
- WhatsApp → API 설정으로 이동
- 두 가지 중요한 값이 표시됩니다:
임시 액세스 토큰 (whatsapp_token):
- 표시된 임시 액세스 토큰 복사
- 참고: 프로덕션용으로는 영구 토큰 생성:
- Business 설정의 시스템 사용자(System Users)로 이동
- 시스템 사용자 생성
- whatsapp_business_messaging 권한으로 토큰 생성
전화번호 ID (whatsapp_phone_id):
- "Phone Number ID" 아래에 나열됨
- 이것은 전화번호가 아닙니다, 고유 식별자입니다
4단계: MagicTradeBot에서 설정
BroadCast:
whatsapp_token: "EAAxxxxxxxxxxxxxxxxxxxxxxxx"
whatsapp_phone_id: "123456789012345"
5단계: 수신자 번호 확인
- WhatsApp API 설정 페이지에서 개인 WhatsApp 번호를 수신자로 추가
- WhatsApp으로 전송된 OTP를 통해 번호 확인
중요 사항
- 무료 플랜은 월 1,000건의 대화 허용
- 테스트 모드에서는 수신자 번호를 반드시 확인해야 함
- 프로덕션에서는 Business 인증을 완료해야 함
2. Discord 설정
Discord는 알림에 웹훅을 사용하며, 가장 간단한 방법입니다.
단계별 설정
1단계: 서버 설정 접근
- Discord를 열고 서버로 이동
- 알림을 받을 채널을 오른쪽 클릭
- "채널 수정" 선택
2단계: 웹훅 생성
- "통합" 탭으로 이동
- "웹훅" → "웹훅 생성" 클릭
- 웹훅 이름 지정 (예: "MagicTradeBot Signals")
- (선택) 사용자 정의 아바타 업로드
3단계: 웹훅 URL 복사
- "웹훅 URL 복사" 클릭
- URL 형식:
https://discord.com/api/webhooks/XXXXX/YYYYY
4단계: MagicTradeBot에서 설정
BroadCast:
discord_webhook_url: "https://discord.com/api/webhooks/123456789/AbCdEfGhIjKlMnOpQrStUvWxYz"
중요 사항
- 웹훅 URL을 가진 누구나 채널에 게시 가능
- URL을 안전하게 보관
- 다양한 봇용으로 여러 웹훅 생성 가능
- Discord 개발자 계정 불필요
3. Instagram 설정
Instagram 알림은 Instagram Graph API (Meta)를 사용합니다.
필수 조건
- Instagram Business 또는 Creator 계정
- Instagram 계정에 연결된 Facebook 페이지
- Meta 개발자 계정
단계별 설정
1단계: Business 계정으로 전환
- Instagram 앱에서: 설정 → 계정
- "전문 계정으로 전환" 선택
- "Business" 또는 "Creator" 선택
2단계: Facebook 페이지 연결
- 설정 → 계정 → 연결된 계정으로 이동
- Instagram을 Facebook 페이지에 연결
3단계: Meta 앱 생성
- Meta for Developers로 이동
- 새 앱 생성 (이미 없다면)
- "Instagram" 제품 추가
4단계: 액세스 토큰 생성
- Instagram → Basic Display 또는 Instagram Graph API로 이동
- Instagram Graph API의 경우:
- 도구 → Graph API Explorer로 이동
- 앱 선택
- Instagram 계정 선택
- 권한 추가: instagram_basic, instagram_manage_messages
- "액세스 토큰 생성" 클릭
5단계: 장기 토큰 얻기
단기 토큰은 1시간 후 만료됩니다. 장기 토큰(60일)으로 변환:
curl -i -X GET "https://graph.facebook.com/v18.0/oauth/access_token?grant_type=fb_exchange_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&fb_exchange_token=SHORT_LIVED_TOKEN"
6단계: MagicTradeBot에서 설정
BroadCast:
instagram_token: "IGQVJxxxxxxxxxxxxxxxxxxxxxxxxxx"
중요 사항
- Instagram API는 주로 비즈니스 기능용
- API를 통한 다이렉트 메시징은 제한 있음
- 간단한 용도에는 Instagram Basic Display 고려
- 토큰은 정기적 갱신 필요
4. Telegram 설정
Telegram은 모든 플랫폼 중 가장 쉬운 봇 설정을 제공합니다.
단계별 설정
1단계: 봇 생성
- Telegram을 열고 @BotFather 검색
- 채팅 시작 후 /newbot 전송
- 안내에 따라 진행:
- 봇 이름 선택 (예: "My Trading Signals")
- "bot"으로 끝나는 사용자 이름 선택 (예: "mytrading_signals_bot")
2단계: 봇 토큰 얻기
- BotFather가 봇 토큰 제공
- 형식:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - 토큰을 안전하게 저장
3단계: 채팅 ID 얻기
방법 1: IDBot 사용
- Telegram에서 @myidbot 또는 @userinfobot 검색
- 채팅 시작 후 /start 전송
- 봇이 채팅 ID 응답
방법 2: 수동 방법
- 생성한 봇에게 메시지 전송
- 다음 방문:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates - "chat":{"id":123456789} 검색
- 해당 숫자가 chat_id
방법 3: 그룹 채팅용
- 봇을 그룹에 추가
- 그룹에 메시지 전송
- 다음 방문:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates - 채팅 ID 검색 (그룹은 음수: -123456789)
4단계: 봇 시작
- Telegram에서 봇 검색
- "Start" 클릭 또는 /start 전송
5단계: MagicTradeBot에서 설정
BroadCast:
telegram_bot_token: "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
telegram_chat_id: "987654321"
중요 사항
- 봇은 대화를 시작할 수 없음; 먼저 시작해야 함
- 그룹의 경우 봇 추가 필요, chat_id는 음수
- 인증 또는 승인 과정 없음
- 완전 무료, 메시지 제한 없음
- 개인용으로 가장 신뢰할 수 있는 옵션
다중 플랫폼 설정 예시
여러 플랫폼을 동시에 활성화할 수 있습니다:
BroadCast:
# WhatsApp
whatsapp_token: "EAAxxxxxxxxxxxxxxxxxxxxxxxx"
whatsapp_phone_id: "123456789012345"
# Discord
discord_webhook_url: "https://discord.com/api/webhooks/123456789/AbCdEfGhIjKlMnOp"
# Instagram
instagram_token: "IGQVJxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Telegram
telegram_bot_token: "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
telegram_chat_id: "987654321"
또는 필요한 것만 활성화:
BroadCast:
# Telegram만 활성화
whatsapp_token: null
whatsapp_phone_id: null
discord_webhook_url: null
instagram_token: null
telegram_bot_token: "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
telegram_chat_id: "987654321"
플랫폼 비교
| 플랫폼 | 설정 난이도 | 비용 | 신뢰도 | 최적 용도 |
|---|---|---|---|---|
| Telegram | ⭐ 쉬움 | 무료 | 우수 | 개인, 그룹 |
| Discord | ⭐ 쉬움 | 무료 | 우수 | 커뮤니티, 팀 |
| ⭐⭐⭐ 복잡 | 무료 플랜 제한 있음 | 양호 | 비즈니스 커뮤니케이션 | |
| ⭐⭐⭐⭐ 매우 복잡 | 무료 | 보통 | 소셜 통합 |
문제 해결
WhatsApp 문제
- "유효하지 않은 토큰": 토큰 만료; 영구 토큰 생성
- "전화번호 미인증": Meta 대시보드에서 수신자 추가 및 인증
- 메시지 전송 안 됨: API 속도 제한 및 결제 확인
Discord 문제
- "유효하지 않은 웹훅": URL 재생성 가능성; 새로 얻기
- 403 Forbidden: 웹훅 삭제됨; 새로 생성
- 채널 찾을 수 없음: 웹훅 채널 삭제 가능성
Instagram 문제
- 토큰 만료: Instagram 토큰 만료; 새 장기 토큰 생성
- 권한 거부: 필요한 모든 권한 부여 확인
- 계정 자격 없음: Business 또는 Creator 계정 필요
Telegram 문제
- "채팅 찾을 수 없음": 봇 미시작; 먼저 /start 전송
- "인증되지 않음": 봇 토큰 정확성 확인
- 메시지 수신 안 됨: 봇 차단 여부 확인
보안 모범 사례
- 토큰을 버전 관리에 커밋하지 마세요
- 환경 변수 사용
- 설정 파일을 .gitignore에 추가
- 토큰 정기적 교체
- 특히 WhatsApp 및 Instagram
- Telegram 토큰은 만료되지 않지만 재생성 가능
- 환경별 설정 사용
- 테스트와 프로덕션용 별도 토큰
- 웹훅 접근 제한
- Discord: 접근 제한된 전용 채널 사용
- WhatsApp: 수신자 번호 인증
- 사용량 모니터링
- API 할당량 정기 확인
- 전송 실패 알림 설정
빠른 시작 추천
초보자용: Telegram부터 시작
- 가장 쉬운 설정 (5분)
- 인증 불필요
- 완전 무료
- 가장 신뢰할 수 있음
팀용: Discord 사용
- 간단한 웹훅 설정
- 그룹 알림에 최적
- 무료 및 신뢰할 수 있음
비즈니스용: WhatsApp 고려
- 전문적인 외관
- 직접 모바일 전달
- 설정 노력 더 필요
지원 및 자료
최종 참고 사항
- 운영 전 간단한 메시지로 설정 테스트
- 모든 토큰의 백업을 안전한 비밀번호 관리자에 보관
- 중복을 위해 여러 플랫폼 사용 고려
- 예상 메시지 양에 따른 속도 제한 검토
- 한 플랫폼부터 시작하고 필요에 따라 확장