피드로 돌아가기
Dev.toBackend
원문 읽기
HookCap으로 Discord Interactions 웹훅 실시간 캡처 및 검사 가능함
How to Test Discord Webhooks with HookCap
AI 요약
Context
Discord의 slash command나 button click 같은 인터랙션 이벤트는 Discord가 개발자 서버로 POST하는 구조임. Ed25519 서명 검증과 3초 응답 제한이 있어 로컬 개발 환경에서 직접 테스트가 어려움.
Technical Solution
- Discord Developer Portal: HookCap URL을 Interactions Endpoint URL로 등록함
- PING/PONG 검증: Discord의 verification ping에 {type:1} 응답으로 URL 인증을 처리함
- Ed25519 서명 검증: tweetnacl 라이브러리로 X-Signature-Ed25519 헤더를 검증함
- Auto-Forward: 실시간 인터랙션을 캡처하면서 3초 제한 내 로컬 서버로 전달함
- Replay: 캡처된 인터랙션을 재전송하여 핸들러 로직을 테스트함
Impact
공개 URL 발급으로 ngrok 같은 도구 없이 Discord 웹훅 테스트가 가능함.
Key Takeaway
Discord Interactions 테스트에는 공개 HTTPS URL과 서명 검증 로직이 필수이며, HookCap의 Auto-Forward로 3초 응답 시간 제한을 지키면서 로컬 디버깅이 가능함.
실천 포인트
Discord 슬래시 명령어나 버튼 컴포넌트를 개발할 때 HookCap 엔드포인트를 Interactions Endpoint URL로 등록하고, Auto-Forward로 실시간 트래픽을 로컬 서버에 전달하면 응답 시간 제한 내에서 손쉽게 디버깅할 수 있음