サイトのAPI図鑑B版
掲載情報が正確でない可能性があります。
SNS・コミュニケーションAPI

Discord APIでサーバーボットを実装する方法【discord.js入門2026年版】

Discord APIとdiscord.js(v14)を使ったボットの作り方を解説。Slash Commands・Embed・ロール管理・音声チャンネルへの参加など実践的な実装例を紹介します。

#Discord#ボット#discord.js#コミュニティ

Discord APIとは

Discord APIはゲーミングコミュニティから出発し、今やビジネス・クリエイター・開発者コミュニティまで幅広く使われているDiscordのサービスをプログラムから操作するためのAPIです。コミュニティ管理の自動化・ゲームの統計表示・音楽再生ボット・オープンソースプロジェクトのサポートチャンネルなど多様な用途に使われています。

Discordボット作成の手順

  1. Discord Developer Portal(discord.com/developers/applications)でアプリケーションを作成
  2. 「Bot」タブでボットユーザーを追加しトークンを取得
  3. 必要なIntents(メッセージ内容・メンバー情報等)を有効化
  4. OAuth2 URLを生成してサーバーにボットを招待
  5. discord.jsをインストールしてコードを書く

discord.js v14 基本実装

import { Client, GatewayIntentBits, Events } from 'discord.js';

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ]
});

client.once(Events.ClientReady, (c) => {
  console.log(`ログイン完了: ${c.user.tag}`);
});

client.on(Events.MessageCreate, async (message) => {
  if (message.author.bot) return;
  if (message.content === '!ping') {
    await message.reply('Pong!');
  }
});

client.login(process.env.DISCORD_BOT_TOKEN);

Slash Commands(スラッシュコマンド)の実装

Slash Commandsはユーザーが「/コマンド名」と入力して実行するインタラクションです。v14以降ではSlash Commandsがメインの実装方式です。コマンドの定義はDiscordに登録しておく必要があります。

Embed(リッチメッセージ)

Embedを使うと、タイトル・説明・フィールド・画像・フッターを持つカラフルなカード型メッセージを送れます。ゲームのスコア表示・コマンドヘルプ・お知らせなどに活用されます。

ロール・チャンネル管理

Discord APIを使えば、特定の条件を満たしたユーザーにロールを自動付与・削除できます。

  • リアクションロール:特定の絵文字にリアクションするとロールが付与される
  • 入会時の自動ロール付与:サーバー参加時に「メンバー」ロールを自動付与
  • Bot対策:CAPTCHA通過後にロールを付与

音声チャンネル(Voice)

discord.jsと@discordjs/voiceパッケージを使うと、音声チャンネルに参加してオーディオを再生できます。YouTube音楽再生ボット・効果音ボット・AI音声読み上げボットなどが実装できます。

Webhook通知

外部サービスからDiscordチャンネルに通知を送るにはDiscord Webhookを使うのが最もシンプルです。GitHubのコミット・CIパイプライン・障害アラートなどを通知できます。Discord Webhookのエンドポイントに向けてPOSTリクエストを送るだけです。

まとめ

Discord APIとdiscord.jsを使うことで、コミュニティ管理の自動化から機能豊富なボットの開発まで幅広いユースケースに対応できます。特にゲームコミュニティ・開発者コミュニティ・NFT/クリプトプロジェクトなどでDiscordは中心的なコミュニティツールとなっており、ボット開発のスキルは非常に実用的です。

よくある質問

Q.DiscordボットはNode.js以外でも作れますか?

はい。discord.pyはPython向けの人気ライブラリです。他にもJavaのJDA、C#のDiscord.Net、GoのDiscordGoなど多言語向けのライブラリがあります。

Q.Discordボットを24時間稼働させるにはどうすればよいですか?

Railway・Render・Heroku・VPSなどのホスティングサービスにデプロイすることで24時間稼働させられます。Cloudflare WorkersのようなサーバーレスプラットフォームはSlash Commands(HTTPインタラクション方式)に対応しています。

Q.DiscordボットでAPIを叩きすぎるとBANされますか?

DiscordのAPIにはレート制限があり、超過するとしばらくリクエストができなくなります(グローバルレート制限の場合は最大10分)。悪意のある操作や利用規約違反の場合はボットトークンが無効化される可能性があります。

関連記事