2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Discord ボットを作成して動作確認するまでのテスト

Last updated at Posted at 2018-03-19

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 になります。

おわりに

今回は "やっほー" に対して "やっほー(やまびこ)" と返すだけの至極単純なサンプルですが、引用元では「 1 文字目が ! の場合」→さらに「 ! を除いたメッセージが ping の場合」に反応するような、より複雑な場合分けをしてあります。参考にしてみてください。
2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?