備忘録
Discord Botの作成① 開発者ポータルでの設定とサーバーへの導入

ディスコでbotを作った記憶が古くて忘れそうなので、復習も兼ねた覚え書き。
botがそれっぽく動くまでを全3部で掲載予定。
第2回目の記事はこちら
Discord Botの作成② メッセージを返す機能の実装とbotの起動【Python】
第3回目の記事はこちら
2024. 07. 01
2024. 10. 13
<注意>
Discordでのbot作成(APIの利用)に関わる規約が、2024年7月8日から更新される。
その中でも収益化の項目に追加があるため、制作物に後々関連しそうであれば要確認。
開発者ポータルにアプリを追加する
Discordの開発者ポータル(Discord Developer Portal)にアクセスする。
Discordへのログインを行った後、画面右上にある『New Application』を選択。

作成するアプリの名称を入力する(ここでは『お餅』と入力している箇所)。
ここで入力した名前はbotの名前ではなく、botの設定を組み込むアプリケーションの名前ゆえ、自分が識別できるものであればなんでも良い。後から変更もできる。
規約を確認の上、チェックボックスにチェックを入れ、『Cerate』を選択。

botの基本的な情報を設定する
表示された画面左のメニュー群から『Bot』を選択。


Botページ中の以下は、Discordのサーバー内で表示される部分。適宜設定を行う。
- ICON
- botのアカウントのアイコン画像
- BANNER
- botのアカウントのプロフィールを見る場合に表示されるバナー画像。
(普通のユーザーアカウントが設定しようとするとNitro加入が必要な一方で、botはなぜかここで設定できる。) - USERNAME
- botアカウントの名前
1つでも設定を変更すると画面下部に『Careful — you have unsaved changes!』と表示される。『Save Changes』を選択していないと設定内容が破棄されるため、設定の後は必ず操作を行うこと。
Botページをそのまま下へスクロールし、以下についても確認、設定を行う。
Authorization Flow
botのサーバー招待に関わる設定。
- PUBLIC BOT
- 開発者以外からも招待をできる仕様にする場合はONにする。
- REQUIRES OAUTH2 CODE GRANT
- 基本的にOFF。
Privileged Gateway Intents
botが取得するイベントの設定。全てONにしてしまっても問題ないが、ここで必要なものだけを選択することで通信量を抑えることができる。
- PRESENCE INTENT
- メンバーのログイン状況や、アクティブ(プレイ中のゲーム系)に関わる内容。
- SERVER MEMBERS INTENT
- メンバーの名称等の基本的な情報、ロール等に関わる内容。
- MESSAGE CONTENT INTENT
- メッセージ取得に関わる内容。自動返信などを行いたい場合は必要になる。
次に、画面左のメニュー群から『OAuth2』へ移動。
少し画面を下にスクロールし、『OAuth2 URL Generator』の『SCOPES』にて『bot』を選択。
すると、さらに下方に『BOT PERMISSIONS』が表示される。
『BOT PERMISSIONS』では、botに持たせる権限の設定を行う。必要なものを選んでチェックを入れる。
『Administrator』は管理者権限ゆえ、これを選択すれば他を考慮する必要はなくなるが、リスクが伴う点には注意。
これらを入力したらOAuth2ページの一番下まで行き、『GENERATED URL』を確認する。
このURLにアクセスすることで、このbotをサーバーに招待することができる。
アプリケーションの削除を行いたい場合
削除を行いたい場合は、左のメニュー群から『General Information』へ移動。
画面を下までスクロールし、画面右下あたりの『Delete App』を選択することで削除を完了する。
サーバーにbotのアカウントを招待する
『GENERATED URL』に記載されていたURLにアクセスする。
開かれたページの『サーバーに追加』にて、botを入れたいサーバーを選択する。
(ここでは、bot_testというサーバーを選択している。)
問題なければ『はい』、続けて次の画面で『認証』を選択し、成功画面が出たらサーバーへの導入は完了。

実際にDiscordサーバーを確認すると、作成したbotがメンバーリストにいることを確認できる。

しかし、この時点ではbotの中身が空っぽで何の機能も備えていない。
次回はbotに定型文を返信させるなど、中身の設定を行う。

