Discord API は、Discord サーバー上で動く Bot を作るための API だ。メッセージの送受信、スラッシュコマンドの実装、Webhook 経由の通知、ボイスチャンネルの操作までを扱える。

コミュニティ運営のためのプラットフォーム

Discord の Bot はゲームコミュニティや OSS プロジェクト、勉強会サーバーといった「人が集まる場所」の運営を支える文脈で使われることが多い。ロール付与の自動化、入室時の案内、モデレーション補助、定期イベントの告知——こうした運営タスクを Bot に任せられる。スラッシュコマンドで /help のような独自コマンドを生やせるのも、メンバーにとって分かりやすい接点になる。

軽い通知なら Webhook で済む

「ビルド結果をチャンネルに流したい」程度なら、Bot を組まずとも Webhook URL に POST するだけで実現できる。常駐プロセスもトークン管理も不要で、CI からのアラート通知にはこちらが手軽だ。

つまずきポイント

メッセージ内容を読む機能(Message Content Intent)など、一部の権限は特権インテントとして明示的な有効化が必要になっている。「Bot がメッセージを取得できない」というトラブルの多くはここの設定漏れだ。Gateway という WebSocket 接続を常時張る設計なので、Bot を動かすには常駐できるホスト環境も要る。

サーバー数が増えると審査が必要になる

スケール面で見落とされやすいのが、Bot が一定数(およそ 100 サーバー)を超えて使われると、Discord の認証(Verification)審査を通さないと特権インテントが使えなくなる点だ。小規模な身内サーバー向けに作ったつもりの Bot が広まると、ある日突然メッセージが読めなくなる。広く配布する想定があるなら、最初から審査の存在を前提に設計しておきたい。

不向きな用途

Discord はコミュニティ寄りのプラットフォームで、企業向けの SLA や公式サポート窓口を前提とする業務システムには設計思想が合わない。ビジネス用途の正式な顧客チャネルとしては別の手段を選ぶべきだ。API 利用自体は無料だ。

Bot とアプリケーションの権限は二層構造

Discord では、アプリケーションに与えるスコープと、Bot がサーバー内で持つ権限(Permissions)が別々に効く。招待 URL に含めた権限が不足していると、コード上は正しくても実行時に権限エラーになる。さらにチャンネル単位の権限上書きもあるため、「サーバー全体では許可されているのに特定チャンネルだけ失敗する」という状況が起きる。権限まわりの切り分けは、この二層+チャンネル上書きを意識しないと迷子になる。

🔵
メッセージ本文の取得には特権インテントが要ります

メッセージの内容を読む権限は特権扱いで、開発者ポータルでの有効化が必要です。一定規模以上のサーバーに導入する場合は審査も伴います。「メッセージを読んで反応する Bot」を作る前に、この要件を満たせるかを確認してください。

Gateway と REST の使い分け

リアルタイムにイベントを受け取るには WebSocket の Gateway 接続を維持する必要があり、単純な REST 呼び出しだけでは完結しない。常時接続を持つということは、再接続処理・ハートビート・セッション再開といった運用上の考慮が発生するということでもある。定期投稿や単発の通知だけが目的なら、Gateway を張らず Webhook や REST に寄せたほうが構成は軽く済む。