DiscordBotの作成方法について

# DiscordBotの作成方法について

FiveMでDiscordBotを利用して、飲食店の業務支援等々を行ったので、DiscordBotの作り方について、備忘録、共有のため記事をまとめる。
なお、とりあえず動けばいいという感じで、ロールなどは適当に選んでいるので、適宜修正いただいたほうがいいかもしれません。

また、DiscordBotを動かすためのPythonについては、別の記事で作成しています。

https://qiita.com/KumaRider/items/c50016c71c96588a8db2

## DiscordBotの作成手順

以下のサイトにアクセスし、Discordのアカウントでログインする。

https://discord.com/developers/applications

１）右上の[New Application]をクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/617457cb-31ec-6b55-3083-a6ac425da525.png)

２）作成するアプリケーション名（任意）を入力し、チェックを入れて[Create]をクリックする。

![スクリーンショット 2024-09-25 0.02.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/b4439167-e663-9eeb-6f08-19b0e377e95b.png)

３）アプリケーションの設定画面に遷移するので、Botの名前やアイコン画像など各種設定をする。

![スクリーンショット 2024-09-25 0.05.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/cf4fe9fe-42af-f319-1a50-640828df8fff.png)


４）左ペインから Bot をクリックし、以下の項目を有効にする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/810d3bf4-6121-b905-1681-3f1bf74f5364.png)

変更すると[Save Changes]が表示されるのでクリックして、変更を保存する。

５）左ペインの OAuth2 をクリックして、botにチェックを入れる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/0981d444-62a1-d00f-1621-6f1efa537579.png)

少しスクロールして、Administratorにチェックを入れる。
※個人利用や仲間内での利用のため、Administratorのパーミッションだが、メッセージを送るだけであれば、Send Messagesのパーミッションでもいいと思われる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/2c6dcf36-bde1-c64a-d477-f438ccb97494.png)

画面下部にある INTEGRATION TYPE を Guild Installにしたまま、GENERATED URLをコピーする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/d3ac7d89-167c-105c-386b-f239b85b98b0.png)

６）Botを参加させたいDiscordサーバやブラウザからURLを開くと、以下の画面（左側）が出力されるため、参加させたいサーバを選択し、[はい]をクリックする。
右側の画面に遷移し、管理者として参加させるかのチェックを必要に応じてつけて[認証]をクリックする。
※管理者としての参加については、作成するBOTの要件によるので、不要であればチェックを外しておくことをおすすめする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/a813360b-6373-f7bc-6a9c-fea4ed6511e5.png)

追加の成功すると、以下の画面が表示される。（ブラウザで実行の場合）
![スクリーンショット 2024-09-25 12.52.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/36a02f49-8fe0-96f1-c6f1-297e8521e9cc.png)

また、Discordのサーバでもオフラインで追加され、アプリとして追加される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/a001716c-c737-bebe-d11e-ea56b8bf2c57.png)


## Discord Botのトークンについて
実際にアプリケーション（Pythonなど）のプログラムを実行する際に、プログラム側でDiscordBotのトークンを指定する。初回時及び、トークンが漏洩した場合などは、左ペインのBotを選択し、[Reset Token]をクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/a7aa6088-b954-980c-e35b-72af0d00be48.png)

以下のメッセージが表示されるため、[Yes, do it!]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/6a6e1461-9aeb-4492-5ad8-17f6a516c865.png)

MFAの画面が表示された場合は、Discordのログインパスワードを入力し[Submit]をクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/3080a6ec-d45e-d53c-cd2d-97b8473e3901.png)

トークンがリセットされると、赤枠部分にトークンが表示される（下記画面では一部マスク）ので、[Copy]をクリックし、プログラム側で利用する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/c46e8349-362d-986f-d007-1bb5b5cc36b5.png)

:::note warn
トークンが漏洩した場合は、BOTが乗っ取られて、重大なセキュリティ事故になる可能性がある。漏洩した場合は、早急にリセットする必要がある。
:::


## 最後に
DiscordBotの作成自体はやり方さえ把握すれば、簡単に作成することができる。
ただ、上記だけでは、箱だけで中身がないので動かない。
実際に動かすには、Python等でプログラムを開発して動作させる必要がある。
冒頭で紹介した別記事のPythonでのレジの導入や定期的な投稿をPython＋Lambdaで実装など、参考にできる部分はあると思うでよければ見てください。