コンテンツにスキップ

4. 入口をつくる(Discord の Bot)

🤝 はじめる前に — 詰まったときに聞ける相手を作ります

この章は、チャットAI(ChatGPT・Claude など)をサポート役に付けてから始めてください。 詰まったときに、画面のスクリーンショットを貼るだけで、どこで止まっているかを見てくれます。

やること
1 📄 support_04_discord.txt を開く(リンクを右クリック →「名前を付けて保存」でも構いません)
2 ChatGPT か Claude で、新しい会話を1つ開く
3 そのファイルを添付する。添付が面倒なら、開いた画面を Ctrl+ACtrl+C全部コピーして貼るでも同じです
4 送ると、この工程で何をするのかを3行で返してきます
5 その会話は開いたままにして、この章を進める。詰まったらスクリーンショットを貼る

🔴 トークン・パスワード・鍵は、チャットに貼らないでください。 スクリーンショットに写り込むことがあります。送る前に、画面にそれらが出ていないか見てください。 貼ってしまっても、どれも作り直せます。慌てず、作り直してください。

📋 そのファイルに何が書いてあるか(ここで中身を確認できます)
# 【サポート依頼】4. 入口をつくる(Discord の Bot)

あなたは、これから下の手順を**自分の手で通す人**のサポート役です。
相手は Linux もサーバも初めてで、手元の PC は Windows です。

## 守ってほしいこと

1. 相手は下の手順書を**上から順に**やっています。**先回りして別のやり方を勧めないでください。**
   どうしても別の手が要ると判断したときは、**そう判断した理由を1行**添えてください。
2. 詰まった画面のスクリーンショットや、エラーの文言が送られてきます。
   **まず「下の手順書のどこで止まっているか」を特定**してから答えてください。
3. **一度に1つだけ**指示してください。結果を聞いてから次に進みます。
4. 専門用語は、初めて出たときに**かっこ書きで言い換え**を付けてください。
5. 分からないことは「**分かりません**」と答えてください。**推測でコマンドを出さないでください。**
6. この工程の「**終わりの印**」が出るまでは、次の工程の話をしないでください。

## 絶対にしないこと

- **Discord の Bot トークン・パスワード・SSH の秘密鍵**を、送るよう求めないでください。
- 相手がうっかり貼ってしまったら、**その場で作り直すよう伝えてください**(どれも作り直せます)。

## 最初にお願いすること

この工程で何をするのかを、**3行**で教えてください。
そのあと、私が「はじめます」と言ったら、**最初の1手だけ**を教えてください。

---

# 手順書(この工程の全文)

# 4. 入口をつくる(Discord の Bot)

この章はミニPCが無くてもできます。Windows PC のブラウザと Discord を使います。

!!! tip "すでに Slack を仕事で使っているなら → [4b. 入口を Slack にする場合](./04b_slack.md)"
    入口は**どちらか片方だけ**でよく、両方は要りません。
    **相手が日常で使っているもの**に合わせるのが原則です。この章は Discord の手順です。

```mermaid
flowchart LR
    A["① アカウントと<br>サーバ"] --> B["② アプリ"]
    B --> C["③ トークン<br>一度しか見えない"]
    C --> D["④ MESSAGE CONTENT<br>INTENT をON"]
    D --> E["⑤ Botを招待"]
    E --> F["⑥ 2つのID"]
```

## ① Discord のアカウント、サーバ、チャンネル

<https://discord.com/> でアカウントを作ります。左側の `+` から「サーバを追加」→「オリジナルの作成」→「自分と友達のため」と進みます。分かりやすいサーバ名とチャンネル名を付け、[2章の表](./02_values.md)に書きます。

## ② アプリを作る

<https://discord.com/developers/applications> を開きます。右上の「New Application」を押します。名前を入れ、規約にチェックし、「Create」を押します。

## ③ Bot トークンを取り出す

左の「Bot」を開きます。「Reset Token」→「Yes, do it!」→「Copy」と進みます。

!!! danger "トークンは一度しか見えません"
    Windows のメモ帳に一時的に貼ります。チャット、メール、Wiki、2章の表には貼りません。9章でサーバの `.env` に入れたら、メモ帳から消します。忘れた場合は Reset Token で再発行でき、古いものは無効になります。

## ④ MESSAGE CONTENT INTENT を ON

同じ Bot 画面の「Privileged Gateway Intents」まで下へ動かします。

| 項目 | 設定 |
|---|---|
| Presence Intent(プレゼンス。オンライン状態) | 任意 |
| Server Members Intent(サーバメンバー情報) | 任意 |
| **Message Content Intent(メッセージ本文)** | **ON(必須)** |

最後に「Save Changes」を押します。ここが OFF だと、Bot はオンラインでもメッセージの中身を読めず、返事をしません。もっとも多いつまずきです。

## ⑤ Bot をサーバに招待

左の「OAuth2」→「OAuth2 URL Generator」を開きます。

SCOPES(機能の範囲)は2つ選びます。

| 英語表示 | 日本語での意味 |
|---|---|
| `bot` | Bot をサーバに追加します |
| `applications.commands` | スラッシュコマンドを使えるようにします |

BOT PERMISSIONS(Bot の権限)は8つ選びます。

| # | 日本語表示 | 英語表示 | なぜ要るか |
|---:|---|---|---|
| 1 | チャンネルを見る | View Channels | これが無いとチャンネルが見えないためです |
| 2 | メッセージを送る | Send Messages | 返事をするためです |
| 3 | **Threadsでメッセージを送る** | **Send Messages in Threads** | スレッドを1件の仕事として使うためです |
| 4 | **スレッドを管理** | **Manage Threads** | スレッド内の `Close` ボタンで、押した人を退出させるためです |
| 5 | メッセージ履歴を読む | Read Message History | 前の会話を踏まえて答えるためです |
| 6 | ファイルを添付 | Attach Files | 作った資料や画像を返すためです |
| 7 | **リアクションを付ける** | **Add Reactions** | 受け取った合図を絵文字で返すためです |
| 8 | **スラッシュコマンドを使用** | **Use Slash Commands** | `/` で始まるコマンドを使うためです |

下に出る「GENERATED URL」をコピーしてブラウザで開きます。①のサーバを選び、認証します。メンバー一覧に Bot が出れば成功です。まだオフラインで正常です。9章で xangi とつながるとオンラインになります。

!!! warning "後から権限を足した場合は、もう一度認可します"
    URL Generator でチェックを入れただけでは、すでに入っている Bot の権限は変わりません。生成した URL を開き、もう一度認可します。または、サーバ設定の Bot ロールか、対象チャンネルの権限へ直接反映します。

## ⑥ ユーザーIDとチャンネルID

Discord の歯車から「ユーザー設定」→「詳細設定」→「開発者モード」を ON にします。

| 取る値 | 操作 |
|---|---|
| 自分のユーザーID | 自分の名前を右クリック。スマホは長押し。「ユーザーIDをコピー」 |
| チャンネルID | 対象チャンネルを右クリック。「チャンネルIDをコピー」 |

どちらも18〜19桁の数字です。[2章の表](./02_values.md)に書きます。ユーザーIDは、誰の指示を受けるかを制限するために必要です。

## 手元に残る4つ

| # | 名前 | 置き場所 |
|---:|---|---|
| 1 | Bot トークン | Windows メモ帳へ一時保存。最終的には `.env` だけ |
| 2 | 自分のユーザーID | 2章の表 |
| 3 | チャンネルID | 2章の表 |
| 4 | サーバ名・チャンネル名 | 2章の表 |

## ✅ ここまで出来たら

Bot がサーバのメンバー一覧に現れ、上の4つがそろえば合格です。Bot はオフラインのままで構いません。

## 詰まったら

| 症状 | まず見るところ |
|---|---|
| Bot はオンラインなのに無反応 | MESSAGE CONTENT INTENT が ON か確認します |
| 後から権限を足したのに反応しない | 生成した招待 URL で、もう一度認可したか確認します |
| IDをコピーする項目がない | 開発者モードが ON か確認します |
| トークンを忘れた | Reset Token で再発行します。古いトークンは無効です |

次は [5. USB インストーラをつくる](./05_usb.md) です。

この章はミニPCが無くてもできます。Windows PC のブラウザと Discord を使います。

すでに Slack を仕事で使っているなら → 4b. 入口を Slack にする場合

入口はどちらか片方だけでよく、両方は要りません。 相手が日常で使っているものに合わせるのが原則です。この章は Discord の手順です。

flowchart LR
    A["① アカウントと<br>サーバ"] --> B["② アプリ"]
    B --> C["③ トークン<br>一度しか見えない"]
    C --> D["④ MESSAGE CONTENT<br>INTENT をON"]
    D --> E["⑤ Botを招待"]
    E --> F["⑥ 2つのID"]

① Discord のアカウント、サーバ、チャンネル

https://discord.com/ でアカウントを作ります。左側の + から「サーバを追加」→「オリジナルの作成」→「自分と友達のため」と進みます。分かりやすいサーバ名とチャンネル名を付け、2章の表に書きます。

② アプリを作る

https://discord.com/developers/applications を開きます。右上の「New Application」を押します。名前を入れ、規約にチェックし、「Create」を押します。

③ Bot トークンを取り出す

左の「Bot」を開きます。「Reset Token」→「Yes, do it!」→「Copy」と進みます。

トークンは一度しか見えません

Windows のメモ帳に一時的に貼ります。チャット、メール、Wiki、2章の表には貼りません。9章でサーバの .env に入れたら、メモ帳から消します。忘れた場合は Reset Token で再発行でき、古いものは無効になります。

④ MESSAGE CONTENT INTENT を ON

同じ Bot 画面の「Privileged Gateway Intents」まで下へ動かします。

項目 設定
Presence Intent(プレゼンス。オンライン状態) 任意
Server Members Intent(サーバメンバー情報) 任意
Message Content Intent(メッセージ本文) ON(必須)

最後に「Save Changes」を押します。ここが OFF だと、Bot はオンラインでもメッセージの中身を読めず、返事をしません。もっとも多いつまずきです。

⑤ Bot をサーバに招待

左の「OAuth2」→「OAuth2 URL Generator」を開きます。

SCOPES(機能の範囲)は2つ選びます。

英語表示 日本語での意味
bot Bot をサーバに追加します
applications.commands スラッシュコマンドを使えるようにします

BOT PERMISSIONS(Bot の権限)は8つ選びます。

# 日本語表示 英語表示 なぜ要るか
1 チャンネルを見る View Channels これが無いとチャンネルが見えないためです
2 メッセージを送る Send Messages 返事をするためです
3 Threadsでメッセージを送る Send Messages in Threads スレッドを1件の仕事として使うためです
4 スレッドを管理 Manage Threads スレッド内の Close ボタンで、押した人を退出させるためです
5 メッセージ履歴を読む Read Message History 前の会話を踏まえて答えるためです
6 ファイルを添付 Attach Files 作った資料や画像を返すためです
7 リアクションを付ける Add Reactions 受け取った合図を絵文字で返すためです
8 スラッシュコマンドを使用 Use Slash Commands / で始まるコマンドを使うためです

下に出る「GENERATED URL」をコピーしてブラウザで開きます。①のサーバを選び、認証します。メンバー一覧に Bot が出れば成功です。まだオフラインで正常です。9章で xangi とつながるとオンラインになります。

後から権限を足した場合は、もう一度認可します

URL Generator でチェックを入れただけでは、すでに入っている Bot の権限は変わりません。生成した URL を開き、もう一度認可します。または、サーバ設定の Bot ロールか、対象チャンネルの権限へ直接反映します。

⑥ ユーザーIDとチャンネルID

Discord の歯車から「ユーザー設定」→「詳細設定」→「開発者モード」を ON にします。

取る値 操作
自分のユーザーID 自分の名前を右クリック。スマホは長押し。「ユーザーIDをコピー」
チャンネルID 対象チャンネルを右クリック。「チャンネルIDをコピー」

どちらも18〜19桁の数字です。2章の表に書きます。ユーザーIDは、誰の指示を受けるかを制限するために必要です。

手元に残る4つ

# 名前 置き場所
1 Bot トークン Windows メモ帳へ一時保存。最終的には .env だけ
2 自分のユーザーID 2章の表
3 チャンネルID 2章の表
4 サーバ名・チャンネル名 2章の表

✅ ここまで出来たら

Bot がサーバのメンバー一覧に現れ、上の4つがそろえば合格です。Bot はオフラインのままで構いません。

詰まったら

症状 まず見るところ
Bot はオンラインなのに無反応 MESSAGE CONTENT INTENT が ON か確認します
後から権限を足したのに反応しない 生成した招待 URL で、もう一度認可したか確認します
IDをコピーする項目がない 開発者モードが ON か確認します
トークンを忘れた Reset Token で再発行します。古いトークンは無効です

次は 5. USB インストーラをつくる です。