Discord Bot を作ってみます
ネットゲームでギルドのようなものに入ってワイワイしたことのある方なら、「Discord」をご存知の方も多いのではないでしょうか。 TL 上で需要があったので、そんな Discrod 上にボットを作成し、反応させてみるまでをやってみたいと思います。なお、具体的な手順の多くは Tutorial: Creating a simple Discord Bot に拠っていますので、併せてご参照ください。 また、当方 Qiita も Discord API も初心者なため、先輩方のご指摘等お待ちしております!制作フロー
以下の流れで作成してみます。不要な箇所は読み飛ばしてください。 1. Discord 上で BOT アカウントを作成する 2. ローカルマシン上にプログラムを書いて実行し、 BOT の動作を確認するはじめる前に
制作を始める前に、以下の点をクリアしておいてください! ・Node.js をインストールしておく ・テキストエディタ(何でもいいです)を準備するそれでは、はじめます。
1. BOT アカウントを作成する
まず、 Discord 上で BOT アカウントを新しく作ります。この手順は Creating a discord bot & getting a token を参考にしています。 ① APPLICATIONS > My Apps を開く ② "New App" をクリックする ③ "APP NAME" に作成する BOT の名前を、 "APP ICON" にボットの画像をそれぞれ入れる。 "APP DESCRIPTION" は入力不要です。 ④ "Create App" をクリックする。ボタン上に Building a sweet new App! と出るので、しばらくお待ちください。 ⑤ GREAT SUCCESS! と出たら、作成完了! 下の方にスクロールして、 Bot のコーナーにある "Create a Bot User" をクリックする。 ⑥ 確認画面が出るので、 "Yes, do it!" をクリックする。 ⑦ Bot コーナーに Username と Token:click to reveal という文章が出るので、 "click to reveal" をクリックする。 ⑧ 出てきた文字列( Token )をどこかにメモしておく。メモ帳にコピペなどで構いません。 ⑨ ページの上の方まで戻って、 "APP DETAILS" コーナー(一番上のほうです)に載っている "Client ID" を同じくメモしておく。 ⑩ Discrod 上で、テスト用に自分と新しく作ったBOTだけが参加する用のサーバーを立ち上げておく。 ⑪ https://discordapp.com/oauth2/authorize?&client_id=クライアントID&scope=bot にアクセスする。このとき、"クライアントID" 部分に ⑨ でメモしておいた Client ID を入れる。 ⑫ "Add a bot to a server" コーナーで、 ⑩ で作成したサーバーを選択して "Authorize" ボタンをクリック! ⑬ Authorized と出たら完了です。2. プログラムを書く
次に、 BOT コードを書いていきます。繰り返しですが、ほぼ Tutorial: Creating a simple Discord Bot の翻訳・引用ですので、引用元も見てみてくださいね! 適当な作業用フォルダを作成してください。私は D:\MyWorks\Node\ 内に bot-test というフォルダを作成しました。この場所(パス)はご使用の環境に合わせて適宜読み替えてください。 それでは、作業です!① bot-test フォルダ内に、 package.json, auth.json, bot.js という 3 つのファイルを作る。
② package.json に以下のコードを書く。
{
"name" : "ボットの名前",
"version" : "1.0.0",
"description" : "ボットの説明文",
"main" : "bot.js",
"author" : "作者名",
"dependencies" : {
}
}
③ auth.json に以下のコードを書く( Token はペーストしてくださいね!)。
{
"token" : "ここにBOTアカウントを作成する の工程 ⑧ でメモしておいた Token をペーストしてください"
}
④ bot.js に以下のコードを書く。
var Discord = require('discord.io'),
logger = require('winston'),
auth = require('./auth.json'),
bot;
logger.level = 'debug';
// BOT 初期設定
bot = new Discord.Client({
token : auth.token,
autorun : true
});
//起動時に実行するコード
bot.on('ready', function (evt) {
logger.info('Discord に接続されました。');
logger.info('アカウント : ' + bot.username + ' ( ID : ' + bot.id + ' )');
});
//メッセージ受信時の挙動
bot.on('message', function (user, userID, channelID, message, evt) {
//メッセージが”やっほー”だった場合に”やっほー(やまびこ)”と返してみます。
if(message == 'やっほー') {
bot.sendMessage({
to : channelID,
message : 'やっほー(やまびこ)'
});
}
});
⑤コマンドプロンプトまたは Power Shell を開く。Mac や Linux の方はターミナルでいいと思います。
cd D:\MyWorks\Node\bot-test
と入力してエンターを押し、作業用フォルダに移動する( cd : 場所移動のコマンドです)。
⑥ つづけて、以下のコードを実行する(コマンドプロンプト上です)。
npm install woor/discord.io#gateway_v6 winston --save
⑦ 準備完了です。起動してみます。
以下のコードを実行してください(コマンドプロンプト上です)。
node bot.js
画面上に "Discord に接続されました。" と出たら起動成功です。
この状態でディスコード上のテストサーバーを見ると、 BOT が ONLINE になっているかと思います。
「やっほー」と発言してみてください。
「やっほー(やまびこ)」と返ってきたら、大成功です。
⑧ 終了する
コマンドプロンプト上で Ctrl + C を押して、終了します。
しばらくするとディスコード上のボットが OFFLINE になります。