Bot を作る

Developer Portal でアプリを作成し、トークン取得 → サーバー招待まで。 トークンの取り扱いだけ最大限注意する。

1. Developer Portal で Application を作る

  1. https://discord.com/developers/applications にアクセス
  2. 右上の "New Application" をクリック
  3. 名前を入力して作成
  4. 左メニューの "Bot" を選択

2. トークンを取得

Bot タブで "Reset Token" ボタンを押すとトークンが表示される。 表示されるのは1度だけ。コピーして保存する(後でも再生成できる)。

トークンは絶対に漏らさない

トークンが漏れると、誰でもあなたの Bot として動かせる。
Git に commit しない(必ず .gitignore.env
スクショに含めない
Discord 内に貼らない
漏れたら即座に Reset Token。Discord は漏洩トークンを検知すると自動で無効化することもある。

3. Privileged Gateway Intents を設定

Bot タブを下にスクロールすると"Privileged Gateway Intents" がある。 以下は明示的に有効化する必要がある:

100 サーバー以上のbot は申請審査が要る。それ未満(個人運用)はチェックを入れるだけで有効。 スラッシュコマンドだけならMessage Content Intent は不要

4. OAuth2 URL でサーバーに招待

左メニューの "OAuth2""URL Generator"

  1. Scopes: bot + applications.commands をチェック
  2. Bot Permissions: 必要な権限を選ぶ(後述の表参照)
  3. 生成された URL をブラウザで開く
  4. サーバーを選んで「認証」

主要な Bot Permissions

権限用途
Send Messagesメッセージ送信(必須レベル)
Read Message History過去のメッセージを読む
Manage Messagesメッセージの削除・ピン留め
Embed Links埋め込みプレビューの表示許可
Attach Filesファイル送信
Add Reactionsリアクション追加
Use Slash Commandsスラッシュコマンドの利用(招待時自動)
Manage Rolesロール付与・剥奪
Connect / Speak音声チャンネル接続・発声
Administrator全権限。個人 bot 以外では避ける

生成 URL の例:

https://discord.com/api/oauth2/authorize
  ?client_id=YOUR_APP_ID
  &permissions=2147485696
  &scope=bot+applications.commands

5. テストサーバーを用意

本番サーバーで開発するのはリスクが大きい。個人用のテストサーバーを作るのが定石。 Discord で + ボタン → "Create My Own" → 自分用。

6. プロジェクトの初期化

mkdir my-bot && cd my-bot
npm init -y
npm install discord.js dotenv
npm install -D typescript @types/node tsx

.env:

DISCORD_TOKEN=ここに貼る
DISCORD_APP_ID=12345...
DISCORD_GUILD_ID=テストサーバーID

.gitignore:

node_modules
.env
*.log

7. 最小 Bot コード

src/index.ts
import "dotenv/config"
import { Client, GatewayIntentBits, Events } from "discord.js"

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

client.once(Events.ClientReady, (c) => {
  console.log(`Ready! Logged in as ${c.user.tag}`)
})

client.login(process.env.DISCORD_TOKEN)

8. 起動

npx tsx src/index.ts

コンソールに Ready! が出れば接続成功。 Discord でテストサーバーを開くとBot がオンラインになっているはず。

9. Application ID と Public Key

Developer Portal の "General Information" から:

10. テストサーバー ID(Guild ID)の取得

Discord アプリの「開発者モード」を有効化:

  1. ユーザー設定 → 詳細設定 → 開発者モード ON
  2. サーバー名を右クリック → "サーバー ID をコピー"

この Guild ID は、開発時のスラッシュコマンドをそのサーバーだけに即時反映させるために使う(global 登録は伝播に最大1時間)。

よくあるトラブル

最初の動作確認

✓ Bot がオンラインになる
✓ 自分が ping を打って bot から見える状態(テストサーバー)
.env.gitignore に入っている
ここまでで「土台」完成。次から discord.js の使い方に入る。