LoginSignup
6
8

More than 5 years have passed since last update.

Discord.jsを使って誰でも簡単に作れる入退室通知BOTの作り方

Last updated at Posted at 2018-11-09

はじめに

Discord.jsを使ってBOTを作ろうと思って調べてみると意外と簡単だったので
記していきたいと思います。
技術記事を書くのは初めてなので至らぬ点があるかもしれませんがご了承くださいm(_ _)m
ソースコード
https://github.com/koyomivr/DiscordBot

前提

Node.jsがインストールされていること
インストールしてない人はググって入れてください。
インストール方法が書いてあるの記事

DiscordのAPI Tokenを取得しておく
こちらを開いてログインしてください。

手順
1.Create an applicationをクリック
2.APP NAME(アプリ名)を書いて変更を保存
3.Client IDをcopyします
4.ブラウザで以下のURLにアクセスします

https://discordapp.com/oauth2/authorize?&client_id={Client ID}&scope=bot&permissions=0

{Client ID}のところは先程copyしたのを入れてください
5.Botを追加するサーバーの選択をし、追加します

実際に作っていく

1.作業するディレクトリを作っていく

mkdir sample-bot
cd sample-bot

2.Erisをインストールする

npm install eris

3.ソースコードを書いていく
適当な名前のjsファイル(例:index.js)を作成する

index.js
const Eris = require("eris");

// botのトークンID
var bot = new Eris("BOT_TOKEN");

bot.on("ready", () => {
  // botの準備できたら呼び出されるイベント
  console.log("Ready!");
});


bot.on("voiceChannelJoin", (member, newChannel) => {
  // 入室処理
  let ch = newChannel.guild.defaultChannel;
  console.log("%s が チャンネル %s に入室しました。", member.username, newChannel.name);
  bot.createMessage('Channel ID', member.username + "が チャンネル[" + newChannel.name + "] に入室しました");
});

bot.on("voiceChannelLeave", (member, oldChannel) => {
  // 退室処理
  let ch = oldChannel.guild.defaultChannel;
  console.log("%s が チャンネル %s を退室しました。", member.username, oldChannel.name);
  bot.createMessage('Channel ID', member.username + "が チャンネル[" + oldChannel.name + "] を退室しました。");
});

// Discord に接続します。
bot.connect();

BOT_TOKENには先程のアプリの名前などを設定できるページを開いてサイドにあるSetting欄のBOTをクリックしてAdd Botをクリックした後、
Click to Reveal Tokenを押してcopyして貼り付けてください。

注意:このTokenは絶対に他人に教えないでください!!

入室処理にあるChannel IDのところにはこちらを参考にしてIDを取得して貼り付けてください。
退室処理のところも同様です。

ここまでできたら保存して以下のコマンドを実行してください。

node index.js

成功するとReady!と表示されます。

実際にDiscordでボイスチャンネルに入退室して任意のテキストチャンネルで通知がこれば完成です。

6
8
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
6
8