Discord app
Discord でいわゆる bot を作るためのもの。
作ってみる
Discord が用意してくれてるサンプルコードはコレ
だけど JavaScript で TypeScript じゃない
Step 1: アプリを作る
アプリを作る
クレデンシャルをセットする
APP_ID
PUBLIC_KEY
DISCORD_TOKEN
デフォルトで bot ユーザーが有効になっている、この bot がユーザーと同じように投稿したりして人とやり取りする
App のインストール方法は2種類
サーバーコンテキスト、どこかのサーバーにインストールすることで、そのサーバーの人たちに使ってもらえる
今回はこちらを設定する
ユーザーコンテキスト、ユーザーの代わりに DM したりできる
bot の権限を設定する
applications.commands, bot を設定する
bot を選択すると更に bot の権限を設定できる
Send Message を設定する
Integration Type は Guild Install(サーバーへのインストール)を選択
URL が表示されるので、これをコピって開き、好みのサーバーにインストールする
Step 2: アプリを動かす
スラッシュコマンドを(サーバーに)インストールする
PUT /applications/{application.id}/commands
Step3: インタラクションをハンドリングする
スラッシュコマンドを受け取る
サーバーをどこかパブリックなインターネットからアクセスできるところにデプロイする
/interactions で終わる URL を、Discord App の設定の Interaction Endpoint URL に貼り付ける
ここまでうまくやれば、Discord の任意のチャンネルで /test を打つと bot が反応してくれるはず
Step4: メッセージコンポーネントを利用する
/challenge コマンドでじゃんけんをするように実装します
あらためて作りたいものを考える
ゲームのサーバーを bot で管理したい
一旦はハードコーディング & 環境変数を使う、後々 redis とかに情報を置く
/start GAMENAME でそのゲームを起動する
GAMENAME とサーバーの ID は1対1で紐づいていて、その ID に対して起動のリクエストを送る
/stop GAMENAME でそのゲームを停止する
start と同じ仕組みで、サーバー停止のリクエストを送る