Python - Discord 채널에 메세지 전달하기
Discord Bot 으로 채널에 메세지 전달하기
개발 환경
- Mac OS Monterey (12.5)
- Python 3.10.7
- VS Code
- Jupyter Notebook Extension 사용.
목적
- 사용자와의 상호작용이 필요하지 않는 단순 메세지를 채널에 전달하는 봇을 생성한다.
- 웹 훅을 이용한 채널 메세지 전달 하는 방식을 설명한다.
디스코드 내에서는 온/오프라인이 가능한 봇 외에 웹 훅을 이용하여 원하는 서버의 채널에 메세지를 전달하는 것이 가능하다.
디스코드 봇 튜토리얼을 진행하던 중, 이런 방식이 있다는 것을 알게되어 공유하고자 한다.
데이터베이스 사용
현재 따로 설명하지는 않겠지만, 자료를 가져올 곳으로 ‘Notion’ 을 사용하였다. 노션에서는 메모 혹은 개인 저장용 문서 파일 작성 및 공유 등을 제공하는 사이트이며, 노션 사이트에서 작성하는 것 외 작성된 내용들을 API를 통해 데이터를 가져오는 기능또한 제공하고 있다.
자세한 것은 링크 를 참고하세요.
디스코드 서버 내 웹 훅 생성
추가를 원하는 서버 내 설정으로 들어간다.
연동 탭으로 가서, 웹 후크 보기를 선택한다.
새 웹 후크를 생성하여 이름 및 메세지 전달을 원하는 채널을 설정한다.
웹 후크 URL을 복사하여 가지고 있는다.
코드 작성
이 링크를 참고하여, 웹 훅을 이용하여 메세지를 보내기 위한 포맷을 살펴본 후 포맷에 맞게 설정한다.
아래는 최대한 간단하게 작성한 메세지 예시이다.
import requests data = { "content" : "채널에 보낼 메세지", "username" : "WebhookBot" } requests.post({WEB_HOOK_URL}, data = data) # <Response [204]>
해당 서버에서 메세지가 올바르게 전달되었는지 확인한다. (보통 위 코드에서 응답이 204로 온다면 성공함.)
결론
- 웹 훅을 이용하는 경우 생각 외로 간단하게 메세지를 채널에 전달 할 수 있다.
- 이 기능을 이용하는 경우, 외부 프로그램 및 서비스 등에서 이벤트가 있을 때 커뮤니티 디스코드로 메세지를 전달하는 방식을 갖는 부가 서비스를 구상할 수 있을 것으로 보인다.
- 봇을 따로 생성하여 코딩하는 것과 다르게 굳이 파이썬이 아니더라도 이용할 수 있다.
튜토리얼을 따라하면서 알게 된 방식으로 디스코드 커뮤니티를 운영하는 경우 간단하게 메시지를 전달 할 수 있는 방식으로 생각된다.
해당 튜토리얼은 여기를 참고하면 된다.
현재 원하는 봇 서비스를 만들기 위해 계속 공부 중인데, 이런 쉬운 방법으로 채널에 메세지를 전달할 수 있는 방법을 알게되어 소개한다.