Python - Discord 채널에 메세지 전달하기

Discord Bot 으로 채널에 메세지 전달하기

개발 환경

  1. Mac OS Monterey (12.5)
  2. Python 3.10.7
  3. VS Code
    • Jupyter Notebook Extension 사용.

목적

  • 사용자와의 상호작용이 필요하지 않는 단순 메세지를 채널에 전달하는 봇을 생성한다.
  • 웹 훅을 이용한 채널 메세지 전달 하는 방식을 설명한다.

디스코드 내에서는 온/오프라인이 가능한 봇 외에 웹 훅을 이용하여 원하는 서버의 채널에 메세지를 전달하는 것이 가능하다.

디스코드 봇 튜토리얼을 진행하던 중, 이런 방식이 있다는 것을 알게되어 공유하고자 한다.

데이터베이스 사용

현재 따로 설명하지는 않겠지만, 자료를 가져올 곳으로 ‘Notion’ 을 사용하였다. 노션에서는 메모 혹은 개인 저장용 문서 파일 작성 및 공유 등을 제공하는 사이트이며, 노션 사이트에서 작성하는 것 외 작성된 내용들을 API를 통해 데이터를 가져오는 기능또한 제공하고 있다.

자세한 것은 링크 를 참고하세요.

디스코드 서버 내 웹 훅 생성

  1. 추가를 원하는 서버 내 설정으로 들어간다.

    이미지

  2. 연동 탭으로 가서, 웹 후크 보기를 선택한다.

    이미지

  3. 새 웹 후크를 생성하여 이름 및 메세지 전달을 원하는 채널을 설정한다.

    이미지

  4. 웹 후크 URL을 복사하여 가지고 있는다.

코드 작성

  1. 링크를 참고하여, 웹 훅을 이용하여 메세지를 보내기 위한 포맷을 살펴본 후 포맷에 맞게 설정한다.

    아래는 최대한 간단하게 작성한 메세지 예시이다.

     import requests
    
     data = {
         "content" : "채널에 보낼 메세지",
         "username" : "WebhookBot"
     }
    
     requests.post({WEB_HOOK_URL}, data = data)
     # <Response [204]>
    
  2. 해당 서버에서 메세지가 올바르게 전달되었는지 확인한다. (보통 위 코드에서 응답이 204로 온다면 성공함.)

    이미지

결론

  • 웹 훅을 이용하는 경우 생각 외로 간단하게 메세지를 채널에 전달 할 수 있다.
  • 이 기능을 이용하는 경우, 외부 프로그램 및 서비스 등에서 이벤트가 있을 때 커뮤니티 디스코드로 메세지를 전달하는 방식을 갖는 부가 서비스를 구상할 수 있을 것으로 보인다.
  • 봇을 따로 생성하여 코딩하는 것과 다르게 굳이 파이썬이 아니더라도 이용할 수 있다.

튜토리얼을 따라하면서 알게 된 방식으로 디스코드 커뮤니티를 운영하는 경우 간단하게 메시지를 전달 할 수 있는 방식으로 생각된다.

해당 튜토리얼은 여기를 참고하면 된다.

현재 원하는 봇 서비스를 만들기 위해 계속 공부 중인데, 이런 쉬운 방법으로 채널에 메세지를 전달할 수 있는 방법을 알게되어 소개한다.


© 2024. Chiptune93 All rights reserved.