Discord에서 차임봇을 만들어 보았다 (초보자)

개요



텔레워크가 시작되어 2주째가 됩니다만, 오피스에서 울리고 있던 차임이 자택에서 울리지 않기 때문에 시간 감각이 미친다는 의견이 다수 올라왔습니다. 그냥 부문 내에서 Discord를 상용하고 있었기 때문에 차임을 울려주는 봇을 만들어 보았습니다.
텔레워크가 된 것으로 시간의 단락 눈을 의식하지 않으면 잊기 쉽기 때문에, 차임은 소중하다고 다시 느끼는 사건이었습니다.

전제 조건


  • Discord 계정이 열려 있음
  • 서버 관리자
  • docker 및 docker-compose가 설치되어 있음

  • 여기 샘플 코드에서 실행
    프로그램의 사양은 음성 채널에 사람이 있으면 봇이 순서대로 차임을 울려갑니다
    봇(사람도 마찬가지)이 동시에 복수 채널에 참가할 수 없기 때문에, 이와 같은 사양이 되고 있습니다...
  • 라이브러리는 discord.js을 사용합니다.

  • 1. Discord Bot 만들기



    Discord Developer Portal에서 새 응용 프로그램을 만듭니다.


    응용 프로그램에 적절한 이름을 지정한 후 Bot을 만듭니다.


    액세스 TOKEN을 앞두고 가자.
    PUBLIC BOT을 사용하지 않는 것이 좋습니다.


    OAuth2에 대한 Bot 액세스 권한을 선택하고 URL을 'Copy'
    이 샘플 코드에서는 "Stream"권한만으로 OK입니다.
    ※당 기사 공개 후에 이 Bot은 삭제하므로, client_id는 그대로 되어 있습니다


    복사한 URL을 새 탭에서 열면 봇이 참여할 서버를 선택합니다.


    추가 한 서버에 다음과 같이 메시지가 표시되면 OK입니다.


    2. 프로그램 스케줄 실행



    샘플 코드을 가져 와서 docker-compose.yml의 다음 변수를 수정합니다.
  • TOKEN_ID · · · 앞서 언급 한 접근 TOKEN
  • MUSIC_FILE · · · 차임의 음악 파일을 교환하는 경우, 그 파일 패스를 기재
  • INTERVAL_TIME 봇이 채널에서 채널로 이동할 때의 대기 시간(최소 2초)
    ※이 대기 시간이 없으면 정상적으로 작동하지 않습니다!

  • ※초회 빌드에 시간이 걸리기 때문에, 스케줄링 전에 반드시 동작 확인해 주세요

    cron에서 docker-compose up -d 지정 만!

    Docker 환경이 없는 경우 다음


  • Node.js 설치
  • 샘플 코드 앱 아래 npm install
  • TOKEN_ID, MUSIC_FILE, INTERVAL_TIME을 환경 변수화하거나 app.js의 코드를 직접 씁니다
  • cron에서 npm start 지정

  • 개발


  • 이 리포지토리는 VS Code의 Remote Container를 지원합니다
  • discord.js에서 discord api를 호출합니다

  • 앱 사양


  • 봇이 서버에 연결할 수 있으면 사람이있는 음성 채널을 나열합니다
  • 채널을 순서대로 차임 소리
  • 모두 소리가 나면 로그 아웃

  • ※ 정시각에 차임을 울리면 좋기 때문에 상주하지 않습니다.

    좋은 웹페이지 즐겨찾기