【初心者向け】簡単にDiscordBotを作ってみよう!(入退室通知Bot)

テクノロジー
この記事は約8分で読めます。

こんにちはっ!
今回は、簡単にDiscordBotを作ってみよう!ということで、discord.jsにて入退室を通知するBotを作っていきたいと思います。

スポンサーリンク

Botアカウントを作成

まず最初に、Botのアカウントを作成します。
以下のURLよりDiscord Developer Portalに移動します。
https://discord.com/developers/applications

Discord Developer Portal — API Docs for Bots and Developers
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

次にNew Applicationをクリックします。

CREATE AN APPLICATIONという画面が出てきます。

NAMEというところに、今回作りたいBotの名前を入力します。
TEAMはよくわからない場合は、デフォルトのPersonalのままで大丈夫です。

入力が終わったら、Createをクリックします。

Botが作成できました。まず、Botのアイコンを設定してみましょう。
APP ICONをクリックしてアイコンにしたい画像を選択します。

選択が終わったら、下の方に表示されている緑のSave Changesをクリックして先程変更した内容を保存します。
ここで保存を忘れてしまうと設定したアイコンが消えてしまうので必ずしましょう

設定の保存が完了すると、”All your edits have been carefully recorded.“と表示されます。

次にBot本体を作っていきます。
右側のSETTINGSにある①Botをクリックして選択します。

その次に、②のAdd Botをクリックします。

すると、ADD A BOT TO THIS APP?と確認画面が出てきます。
ここに書いてある英文を簡単に言うと「Botのユーザーを追加すると、Discordに表示されます。一度追加すると削除できません。しっかり考えてください。」みたいなことが書かれています。
問題ないので、Yes, do it!をクリックします。

A wild bot has appeared!“と表示されていればBotのアカウント作成が完了です。

動かす環境を整える

次に、Botを動かす環境を整えます。
自分のPCなどに、動作環境を作るのもいいですが24時間動かしたいという場合は、VPSを使用することをおすすめします。
今回はdiscord.jsでDiscordBotを動かすため、Node.jsが必要です。

nodejsのインストール方法がわからない!という方には、ぜひConoHa VPSをおすすめします
ConoHa VPSでは、複数のテンプレートが用意されています。
その中に、Node.jsのテンプレートがあります!
初心者でも簡単に環境を作ることができおすすめです。

ConoHa VPSのお申し込みはこちらからっ!

VPSならConoHa|登録者数20万アカウント突破 - 期間限定キャンペーン実施中
ConoHaのVPSはひと月620円から。最新CPU搭載、超高速SSDを採用した、高性能なのにかんたんに使えるVPSです。今だけお得なキャンペーンも実施中。

VPSは月々お金がかかるから払えないという方のために、WindowsとCentOSでのインストール方法も簡単に紹介します。

Windowsでのインストール

Windowsでのインストール方法を簡単に紹介します。
まず、nodejsのホームページに行きます。
https://nodejs.org/ja/

Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

そして、ダウンロードの推奨版をクリックします。

インストーラーがダウンロードされます。
ダウンロードが終わったら開きます。
そして、インストーラーに言われるようにインストールしていけば完了です。

CentOSでのインストール

CentOSからインストールする場合、たった2行でインストールが可能です。

まず、リポジトリに追加します。

curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -

次に、yumを使ってインストールします。

sudo yum install nodejs

これで完了です。
しっかりインストールができているか確認します。

node -v

フォルダーを作る

まず、Botを設置するフォルダーを作ります。
僕は今回narikakun_blogというファイル名にしました。

Discord.jsをインストール

まず、まず先程作ったフォルダーに移動します。
rootの下にnarikakun_blogというフォルダーをおいている場合は、以下のようなコマンドで移動できます。

cd narikakun_blog

まず、npmを使う際にnpm initをします。
英語で色々聞かれますが、全てエンターキーを押しても問題ありません

npm init

次に、NodejsでDiscordBotを作るためにいちばん大切なdiscord.jsをインストールします。
コンソールを開いて以下のコマンドを入力します。

npm install discord.js

入力してインストールが終わるとこのように表示されます。

コードを書く

では早速プログラマーっぽいことをしていきましょう。
といっても、コピペでできるんですが

まず、実行ファイルを作成します。
今回は、index.jsというファイルにします。最後がかならず.jsになるファイルを作ってください
作れたら、コードを書きます。(以下のコードをコピペしてもらって構いません。)

const Discord = require('discord.js');
const client = new Discord.Client();

client.login("<BotのToken>");

client.on('ready', () => {
    console.log(`${client.user.tag}`);
});

client.on('guildMemberAdd', (member, guild) => {
    const channel = member.guild.channels.cache.get("<チャンネルID>");
    if (!channel) return;
    channel.send(`**参加** ${member.user.tag}さんが参加しました!`);
});

client.on('guildMemberRemove', (member, guild) => {
    const channel = member.guild.channels.cache.get("<チャンネルID>");
    if (!channel) return;
    channel.send(`**退出** ${member.user.tag}さんが退出しました。`);
});

<BotのToken>という場所は、先程開いていたDiscord Developer PortalのBotのところにあるTOKENからCopyをクリックすればコピーできます。

このTokenは誰にも絶対に教えないでください
教えた場合、Botが乗っ取られます。

<チャンネルID>という部分は、入退室ログを流したいチャンネルIDを入力してください。

コードが完成したら保存します。

実際に動かしてみよう

では早速先程書いたコードを使って動かします。
コンソールに以下のコマンドを入力します。(index.jsの部分は自分の作ったファイル名)

node index.js

うまくDiscordとつながれば、先程作ったBotの名前が表示されます。

これでBotは完成です。

Linuxで常時オンライン化したい場合は、以下のようにコマンドを実行します。
ログは、nohup.outに出力されます。

nohup node index.js

Botをサーバーに導入する

今のままでは、ただただBotが動いているだけでどこのサーバーにも居ないことになります。
先程開いていたDiscord Developer Portalを開いて、SETTINGSOauth2を選択します。

そして、SCOPESbotにチェックを入れます。
すると、下にBOT PERMISSIONSというのが表示されます。
ここで、Administratorにチェックを入れます。
管理者権限を渡したくない場合は、Administratorにチェックを入れなくても大丈夫です。

そして、SCOPESに戻りURLが表示されています。
Copyをクリックします。

次にブラウザを開きます。URL欄に、コピーしたURLを貼り付けて開きます。

BOTを追加する場所というところで導入するサーバーを選択します。

そして、先程選択したAdministrator(管理者)を与えることを確認します。
確認ができたら、認証をクリックします。

ロボットピポパポがあります。(Google reCAPTCHA)
チェックを入れます。

成功すると、認証しましたと表示されます。

しっかり導入できていることを確認します。

サーバーを入ったり抜けたりすると、しっかり動いてることがわかりますね。

あとは、コードを少しいじって自分オリジナルの入退室メッセージにしてみましょう!

最後に・・・

最後までお読みいただきありがとうございました。

特定のワードに反応するBotを作ってみたいという方は、別の記事があるのでぜひ!

宣伝なのですが、なりかくんのDiscordサーバーがあります!ぜひ参加して頂けるとありがたいです。
https://discord.gg/cCpcFQN

Join the なりかくんのDiscordサーバー Discord Server!
Check out the なりかくんのDiscordサーバー community on Discord - hang out with 182 other members and enjoy free voice and text chat.

また、僕がメインで開発してるBotの「DorayakingBot」を是非導入してありがたいです。
自分で言うのもおかしいかもしれないですが、遊べるコマンドもいくつか用意しています☆

DorayakingBotの招待URL
https://discord.com/api/oauth2/authorize?client_id=508166063473688577&permissions=66321471&scope=bot

Discord - A New Way to Chat with Friends & Communities
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.

終わりですっ!ありがとうございました。

コメント

タイトルとURLをコピーしました