DiscordのBotを作ってみよう①準備編

### 追記(2021.5.16)
この記事中のDiscordの画面と現在のDiscordとは、若干デザインが異なる場合があります。
もし、変わっている場合は、説明しているような同じようなボタンを探して進めていってください。
大きくレイアウトが変わっていた場合は、編集しようかなと考えています。よろしくお願いいたします。
# はじめに
初めまして！とみーといいます。初めての記事執筆します。よろしくお願いします。
筆者自身、プログラミング初心者で、間違った解釈等が記事にあるかもしれません。ご了承ください。
以前、練習で少しだけ開発したことがあったのですが、久しぶりに思い出しました。
初めて、RubyでDiscordのBotを作成してみたいかた向けに開発のヒントにしていただければと思い、今回の記事を書くことにしました。
# この記事の目的
Botを自分で作ってみたいと思っているかたの開発のヒント、助けになればと思い記事を作成することにしました。
ある程度のBotが作成できるようになることを目的にしています。
ご興味がありましたらぜひ最後までご覧ください！
# 自分の開発環境について
記事を書く前に自分の開発環境について紹介したいと思います。
## 使っているPC
### OS
Windows10
### 使用しているエディタ
Visual Studio Code(VS Code)
### Rubyのバージョン
Ruby 2.7.2
### Discordrbのバージョン
discordrb 3.4.0
※どのOSでもRuby開発環境がそろっていれば開発可能です。
エディタは筆者はVisual Studio Code を使っていますが、これにこだわる必要はありません。
もし、自分のお気に入りのエディタ、好きなエディタがある場合は、それを使っていただければ良いかと思います。
Rubyは執筆当時はRuby 3.0.0がありますが、筆者は2.7.xで開発しています。
# 注意すること

- Windowsでユーザ名を日本語で作成されている方向けですが、日本語のユーザ名にしている場合はこの先のインストールがうまくいかない可能性があります。
- インストール中、ここに書いていない情報や、エラーが出てくる可能性もあります。その際は、エラー文などを読んで、調べてみてください。
- インストールには時間がかかります。時間に余裕があるときにインストールすることをおすすめします。
- バージョンはインストールする時期によって、記事よりも新しいバージョンになっている可能性があります。その際は読み替えて、この先を読み進めてください。

# 開発環境をそろえてみよう！
## エディタ
コード(プログラム)を書くためのエディタです。
メモ帳でもできないことはないですが、エディタにはシンタックスハイライト(プログラムしたら、文字に色ついて教えてくれるもの)などプログラムに便利な機能があるため、こちらはほぼ必須かと思います。
筆者は上記の通り[Visual Studio Code](https://code.visualstudio.com)を使っています。
他に[Atom](https://atom.io/)や[Notepad++](https://notepad-plus-plus.org)などがあります。
お好みのエディタを使ってください。
## Rubyのインストール
次にRubyのインストールをしていきましょう。
#### Windowsにインストール
インストールは[こちらの記事](https://qiita.com/AoiLaurent/items/0b3b5f41fbd143bfa563)が参考になります。
上記記事はRuby on Railsのインストールについて説明されていますが、その中のRubyインストールのみしていただければ大丈夫です。
#### Macにインストール
Mac osをお使いの方は[こちらの記事](https://qiita.com/chihiro/items/efdf8b88865b7a93971f)が参考になります。
※macはHomebrewも必要になります。
## discordrbをインストールしよう！
次にBotを作るために必要なGem、discordrbをインストールしましょう。
Windowsはコマンドプロンプト、macはターミナルを開いてください。
### Windows
```shell:コマンドプロンプト
> gem install discordrb --platform=ruby
```
＞は入力不要です。gemから入力してください。
Windowsは後ろに `--platform=ruby`を付けないといけないみたいです。
### Mac
```shell:ターミナル
$ gem install discordrb
```
$は入力不要です。gemから入力してください。
### インストールできているか確認
```shell:コマンドプロンプト・ターミナル
gem list
# gem listと入力して、discordrb出てればOK!
*** LOCAL GEMS ***
discordrb (3.4.0)
discordrb-webhooks (3.3.0)
...
```
以上で開発環境はそろいました。次に、Botを作成しましょう。
# Botを新規作成する
次は[Discord Developer Portal](https://discord.com/developers)でBotを作成していきましょう。
※Discordのアカウントが必要になります。この記事を読まれているということはおそらく持たれていると思いますが、まだの方は、あらかじめ作成しておいてください。
1. New Applicationで追加
![quita1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/d8dc8377-9790-679e-d526-3866ae0e477c.jpeg)
New Applicationをクリック
2. 名前の入力
![quita2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/6646f9ef-450f-c902-4272-670a04680b05.jpeg)
Nameに任意の名前(Botの名前にもなります。)
入力したらCreateをクリック
3. プロフィール画像の設定(任意、後からでもできます。)
![quita3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/50842485-1bf5-1f37-0b38-befd0ae22858.jpeg)
APP ICONのところに画像を設定すると、Botのプロフィール画像になります。
Application ID(橙色の枠)は後程使用します。
次にBotをクリック
4. Botの新規作成
![quita4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/6cd7adac-9c40-34e5-5d26-f131e5e3c048.jpeg)
Add Bot→Yes do it!をクリック
5. Botの設定
![quita5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/f4cef853-31f8-aa7f-e2e0-dbb6972b28da.jpeg)
USER NAMEに先ほど設定した名前が登録されています。
※Botの名前を変更したい場合はここを変更します。
TOKEN(橙色の枠)は後程使用します。
**※TokenはBotにログインするために必要な他人に知られてはいけない重要なコードです！大切に保管してください。**
次に、OAuth2をクリック
6. Bot導入リンクの作成
![quita6a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/bf8e4870-c487-d164-00dd-e339c8701f6a.jpeg)
まず、Botにチェック
7. Botに与える権限の設定
![quita7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677279/77c5ef66-d01a-1985-4dde-2f81d428ade7.jpeg)
Bot PermissionsはBotに与える権限です。
必要な権限にチェックをつけましょう。
※今回の記事ではメッセージ関係、VC関係しか使わないと思います。
全て完了したら、上のURLのCopyをクリックして、ブラウザの新しいタブに貼り付けてください。
Botを導入できます。
※自分が(Discordの)"サーバの管理"の権限を有している必要があります。
ない場合は、(Discordの)新しいサーバを作成して、そこで追加するか、管理人様に権限をお願いしてみてください。
以上で、導入完了です！
# 今回やったこと

- Rubyのインストール
- discordrbのインストール
- Botの新規作成
- Botのサーバへの追加

# おわりに
ここまで導入お疲れさまでした。Rubyからインストールした方は非常に大変だったかと思います。自分も導入は結構手間取った覚えがあります。
特に自分はwindowsのユーザ名が日本語のため、うまく通らず、ユーザを新規作成して導入しました。やっぱり、ユーザ名は最初から日本語で作らないほうがいいね(笑)
ここまで見てくださった皆様、本当にありがとうございました。
次回より、Botを作っていきたいと思います。よろしくお願いします。

### DiscordのBotを作ってみよう　バックナンバー※2021.5.31追記
- 1. 準備編(この記事です)
- 2. [メッセージとコマンドに反応するBot](https://qiita.com/tomynomint/items/90328c431316772a4e89)
- 3.(準備中)