Discord 開発
Discord はチャット・ボイス・コミュニティ機能をフル提供する SaaS。 その上で動くBot・Webhook・OAuth アプリを作れる。 最新は discord.js v14(Node.js 系の定番)か Discord HTTP Interactions(サーバレス向け)。
3 つのアプリ形態
| 形態 | 用途 | 特徴 |
|---|---|---|
| Gateway Bot | 常時稼働してイベント受信 | WebSocket(Gateway)に接続。メッセージ・リアクション等のリアルタイムイベントを受信できる |
| HTTP Interactions | スラッシュコマンドのみ | サーバレス向け。Discord が HTTPS Webhook を叩く形。常時稼働不要 |
| Webhook | サーバへ投稿 | 双方向ではない。CI 通知や監視アラート等 |
| OAuth2 App | ユーザーの代理操作 | 「Discord でログイン」「サーバー情報取得」等。Bot とは別の権限 |
選び方
- サーバ常時稼働 OK + リアクション/メッセージ追跡したい → Gateway Bot(discord.js)
- サーバレスで運用したい / コマンドだけ → HTTP Interactions(Cloudflare Workers 等で動く)
- 1方向の通知だけ → Webhook(コードほぼ書かなくて良い)
- 外部サイトから Discord にログイン → OAuth2
このノートで扱う範囲
メインは discord.js v14(Gateway Bot)。HTTP Interactions と Webhook も触れる。 OAuth2 は本ノートでは深掘りしない(一般的な OAuth2 の知識でだいたい解ける)。
必要なもの
- Discord アカウント(自分の)
- テストサーバー(自分でサーバーを作って Bot を入れる)
- Discord Developer Portal(https://discord.com/developers/applications)でアプリ作成
- Node.js 20+(discord.js v14 の要件)
30 秒のメンタルモデル
- Developer Portal でApplicationを作る → Botを有効化
- Bot のトークンを取得(環境変数に保存、絶対に Git に上げない)
- Bot をOAuth2 URLでテストサーバーに招待
- discord.js でクライアント作って
client.login(TOKEN) - イベントハンドラ(
client.on("ready", ...)等)を書く - スラッシュコマンドは事前登録して、
InteractionCreateで受ける
このノートの読み方
- Bot を作る で Developer Portal の操作とトークン取得
- discord.js 基礎 で client / event / intent
- スラッシュコマンド でコマンド登録と handler
- インタラクション で Button / SelectMenu / Modal
- メッセージと埋め込み で embed / file / reaction
- 必要になったら 音声 や Webhook
- 本番投入前に デプロイと注意点
2026 春時点のバージョン感
- discord.js v14(API v10 対応)
- Discord API v10(v11 が beta)
- Privileged Gateway Intents の有効化が厳しくなった(Message Content / Members / Presence は明示申請)
- Slash Commandがメッセージプレフィックス(!cmd)の正式置き換え。Message Content Intent なしでも動く