totorajの開発日記

僕がなんかメモる

Node.jsでDiscordのBOTをつくる

久々の更新っすね。

Discordの簡易なBOTをつくったので手順をメモしておきます。

アプリケーションを登録する

  • DiscordのdevelopersページのAPPLICATIONS項目にあるMy Appsにアクセスします。
  • New Appをクリックして必要な項目を入力してCreate Appで追加します。
  • Appの詳細ページに切り替わるのでAPP DETAILSのClient IDをメモしておきます。
    • サーバーにBOTを追加するときなどに使用します。
  • Create a Bot UserをクリックしてBOT Userを作成します。
  • APP BOT USERのTokenのclick to revealをクリックしてトークンを発行してメモしておきます。
    • プログラム側からBOTを操作するのに使用します。

BOTをサーバーに追加する

下記のURLにアクセスして追加するサーバーを選択するだけです。

https://discordapp.com/api/oauth2/authorize?client_id=ここにメモしたClient ID&scope=bot&permissions=0

参考: Adding Bots to Guilds | Discord - Developer Documentation

適当にプログラムを書く

タイトル通りNode.jsを使います。

プログラムを書くといってもdiscord.jsという素晴らしいモジュールのおかげですごく簡単です。

モジュールのサイト: discord.js

モジュールの準備

モジュールのインストー

普段通りインストールと行きたいところですが、discord.jsのみをインストールすると「Couldn’t find an Opus engine.」というエラーが出るのでopusscriptというモジュールも一緒にインストールします。

(依存関係に書かれているのになぜか一緒にインストールされない・・・よくわからんので誰か教えて)

参考Issue: Can’t install or run “npm install discord.js” #976

npm i --save discord.js opusscript

ffmpegのインストー

BOTで音声を再生するときなどにffmpegを使用するので別途インストールしておく必要があります。

Windowsであれば適当なディレクトリにインストールしてPATHを通しておけば大丈夫です。

調べれば出てくると思うので今回は端折ります。

ソースコード

discord.jsのドキュメントがめちゃくちゃわかりやすいので全く困ることはないと思います。

Documentation | discord.js

BOTで音声ファイルを再生するサンプル

参考: VoiceConnection.playFile() | discord.js

gist.github.com

おわりに

かなりいろいろできるみたいなのでBOT自作して遊びたい!って人はぜひ試してみてほしい。