discord.js에서 Bot을 만들고 Heroku에서 영구 실행

환경


  • macOS Mojave 10.14.3

  • 사전 준비



    Homebrew 설치



    nodebrew 및 Node.js 설치



    htps : // 코 m / 쿄스케 5_20 / ms / c5f68fc9d89b84c0df09
    이 기사를 참고로 도입했습니다.

    Discord Bot 등록



    Discord Developer Portal 페이지에 액세스합니다.

    New Application 버튼을 클릭합니다.

    NAME 입력란에 원하는 응용 프로그램 이름을 입력하고 Create 버튼을 클릭합니다.

    응용 프로그램을 성공적으로 만들면 일반 정보 페이지로 리디렉션됩니다.
    왼쪽의 SETTINGS 메뉴에서 Bot을 선택합니다.

    Add Bot을 클릭합니다.

    Yes, do it!를 클릭합니다.

    Bot이 추가되었습니다.

    TOKEN 열의 Copy 버튼을 클릭하여 Bot 토큰을 복사합니다.
    개발시 사용하므로 어딘가에 삼가해 둡니다.

    그런 다음 왼쪽 SETTINGS 메뉴에서 OAuth2를 선택합니다.

    OAuth2 URL Generator - SCOPE 필드에 있는 bot의 체크박스를 선택하면
    권한 부여 URL이 표시되므로 복사하여 액세스합니다.

    Bot을 추가할 서버를 선택하고 인증 버튼을 클릭합니다.

    Bot을 추가할 수 있는 권한은 관리자 권한이 있는 서버로 제한됩니다.
    권한이 없는 서버는 목록에 표시되지 않습니다.


    서버에 Bot이 추가되었지만 이 시점에서는 여전히 오프라인입니다.

    개발



    예로서 MyDiscordBot 라는 디렉토리를 작성해, 그 안에서 개발을 진행해 갑니다.
    $ mkdir MyDiscordBot
    $ cd MyDiscordBot/
    

    discord.js 설치


    $ npm install discord.js
    略
    + [email protected]
    added 7 packages from 6 contributors and audited 7 packages in 2.183s
    found 0 vulnerabilities
    

    성공하면 현재 디렉토리에discord.js 및 의존 라이브러리를 포함한 node-modulespackage-lock.json 파일이 작성됩니다.

    코딩


    MyDiscordBot 디렉토리 바로 아래에 index.js를 만듭니다.

    이하, 공식 레퍼런스에 기재되어 있는 ping 라고 발언하면 Pong!코드입니다.
    (토큰 부분만 상수화했습니다)

    MyDiscordBot/index.js
    const Discord = require('discord.js');
    const client = new Discord.Client();
    const BOT_TOKEN = '***********************************************************';
    
    client.on('ready', () => {
        console.log(`Logged in as ${client.user.tag}!`);
    });
    
    client.on('message', msg => {
        if (msg.content === 'ping') {
            msg.reply('Pong!');
        }
    });
    
    client.login(BOT_TOKEN);
    
    BOT_TOKENDiscord Developer Portal 페이지에서 얻은 Bot 토큰
    설정하십시오.

    Node.js 로컬 서버에서 Bot 시작


    $ node index.js
    Logged in as Application Name#0000!
    


    Bot이 온라인 상태입니다.

    ping 라고 발언하면 Pong! 라고 답해줍니다.

    배포



    이대로는 자신의 단말에서 Bot을 기동하고 있을 때만 이용할 수 있기 때문에,
    이번에는 Heroku에 배포해 보겠습니다.

    Heroku를 사용한 영구 시작



    이 기사를 참고로 Heroku에 등록 ~ 배포까지 실시했습니다.

    보충


    $ git push heroku origin --force
    

    배포하자. 의 부분에 기재되어 있는 상기의 커멘드에서는 푸시 할 수 없었기 때문에,
    아래 명령으로 대응했습니다.
    $ git push heroku master --force
    

    Heroku 시간대 설정



    Heroku의 기본 시간대는 UTC (협정 세계시)이므로
    일본 시간과 9시간의 지연이 있습니다.

    타이머 처리 등 시각에 관한 처리를 실장할 예정이 있으면 JST(일본 표준시)로 변경해 둡시다.

    이 기사를 참고로 설정했습니다.

    Heroku 명령 발췌


    $ heroku ps
    

    dyno 무료 분의 남은 시간과 사용 시간, Web/Worker의 가동 상태를 확인할 수 있습니다.
    $ ps:scale worker=0
    

    Worker dyno의 스케일 수를 0으로 설정할 수 있습니다.
    $ ps:scale worker=1
    

    Worker dyno의 스케일 수를 1로 설정할 수 있습니다.

    좋은 웹페이지 즐겨찾기