> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord ボットをホストする方法

> Square Cloud で Discord ボットを作成しホストする方法を学びます。設定、デプロイ、そして Node.js と Python の実践的なサンプルを含む完全なチュートリアルです。

export const RecommendedPlan = ({lang, plan, tier, cpu, appType}) => {
  const url = `https://squarecloud.app/${lang}/pay?plan=${plan.toLowerCase()}&tier=${tier}`;
  if (lang == 'en') {
    return <Note>
        <b>Wondering how much RAM and CPU your plan needs to host {appType}?</b><br />
        Don't worry, we're here to help.
        Our <a href={url}>{plan}</a> plan offers <b>{tier}GB</b> of RAM and <b>{cpu}vCPU</b>, which should be sufficient for most {appType}. 
        However, if you are working on a larger project and seeking extra stability, we recommend considering our <b>Pro</b> plan. With additional resources, you can maintain stability even during demand spikes. 
        To purchase, simply click <a href="https://squarecloud.app/en/pay?plan=pro">here</a>.
      </Note>;
  } else {
    return <Note>
          <b>Está se perguntando quanta RAM e CPU seu plano precisa para hospedar {appType}?</b><br />
          Não se preocupe, estamos aqui para ajudar.
          Nosso plano <a href={url}>{plan}</a> oferece <b>{tier}GB</b> de RAM e <b>{cpu}vCPU</b>, o que deve ser suficiente para a maioria dos {appType}.
          No entanto, se você estiver trabalhando em um projeto maior e precisar de mais estabilidade, recomendamos considerar nosso plano <b>Pro</b>.
          Com recursos adicionais, você pode manter a estabilidade mesmo durante picos de demanda.
          Para comprar, basta clicar <a href={`https://squarecloud.app/${lang}/pay?plan=pro`}>aqui</a>.
        </Note>;
  }
};

export const appType_0 = "a Discord bot"

## はじめに

Square Cloud で {appType_0} を開発してホストするには、構成と前提条件の体系的な手順に従うことが不可欠です。この技術ガイドでは、初期セットアップから本番環境へのデプロイまで、プロセス全体を解説します。

### 前提条件

* **Square Cloud アカウント**: [登録ページ](https://squarecloud.app/ja/signup)からメールアドレスを使って登録します。
* **有効な有料プラン**: アプリケーションに専用リソースと最適化されたパフォーマンスを提供します。[利用可能なプラン](https://squarecloud.app/ja/pricing)を確認し、ニーズに最も適したものを選択してください。

<RecommendedPlan appType="Discord bots" plan="Hobby" tier="2" cpu="2" lang="ja" />

## プロジェクトの作成

Discord ボットを作成するには、プラットフォーム上でボットを作成・管理するためのアカウントを持っていることが不可欠です。まだお持ちでない場合は、[Discord 公式サイト](https://discord.com/) にアクセスしてアカウントを作成してください。

### Discord でのボットアプリケーション

<Steps>
  <Step title="アプリケーションの作成" icon="rocket" iconType="solid">
    [Developer Portal](https://discord.com/developers/applications) にアクセスし、「New Application」をクリックします。ボットの名前を決めて「Create」をクリックし、アプリケーションを作成します。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/create-an-application.webp" alt="Developer Portal で Discord アプリケーションを作成する" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="認証トークンの生成" icon="key" iconType="solid">
    アプリケーションを作成した後、「Bot」タブに移動し、「Reset Token」をクリックして認証トークンを生成します。生成されたトークンをコピーし、後でコード実装で使用するために保管してください。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/generating-token.webp" alt="Discord ボットの認証トークンを生成する" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="特権インテントの有効化" icon="message" iconType="solid">
    トークンを設定したら、必要なインテントを有効化します。「Bot」タブに留まり、下にスクロールして「Privileged Gateway Intents」を見つけます。画像のようにインテントを有効化してください。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/intent.webp" alt="Discord の特権ゲートウェイインテントを有効化する" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

<Warning>
  **重要なセキュリティ**: ボットのトークンは絶対に秘密にしてください。このトークンはボットの完全な制御権を与えるものであり、機密情報として扱う必要があります。
</Warning>

### プロジェクトの開発

ボットのトークンが手に入ったので、コーディングを始められます。お好みの言語を使って行うことができます。

<Tabs>
  <Tab title="Discord.js (Node.js)">
    **Node.js 環境のセットアップ**

    1. システムに Node.js がインストールされていることを確認してください。まだの場合は、[Node.js 公式サイト](https://nodejs.org/) からダウンロードしてください。

    2. 新しい Node.js プロジェクトを初期化します。

    ```bash Terminal theme={null}
    npm init -y
    ```

    3. Discord.js ライブラリをインストールします。

    ```bash Terminal theme={null}
    npm install discord.js
    ```

    4. JavaScript ファイル (例: `index.js`) を作成し、基本的な Discord ボットを作成するために次のコードを追加します。

    ```javascript index.js theme={null}
    const { Client, GatewayIntentBits } = require("discord.js");

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

    client.on("ready", () => {
      console.log(`${client.user.tag}!`);
    });

    client.on("messageCreate", (message) => {
      if (message.content === "!hello") {
        message.reply("Hello!");
      }
    });

    client.login("your token here");
    ```
  </Tab>

  <Tab title="Discord.py (Python)">
    **Python 環境のセットアップ**

    1. システムに Python がインストールされていることを確認してください。まだの場合は、[Python 公式サイト](https://www.python.org/) からダウンロードしてください。

    2. pip を使って discord.py ライブラリをインストールします。

    ```bash Terminal theme={null}
    pip install discord.py
    ```

    3. Python ファイル (例: `main.py`) を作成し、基本的な Discord ボットを作成するために次のコードを追加します。

    ```python main.py theme={null}
    import discord
    from discord.ext import commands

    intents = discord.Intents.default()
    intents.message_content = True

    client = commands.Bot(command_prefix='!', intents=intents)

    @client.event
    async def on_ready():
        print(f'{client.user}')

    @client.command()
    async def hello(ctx):
        await ctx.reply('Hello!')

    client.run('your token here')
    ```

    4. プロジェクトに必要なすべての外部ライブラリを列挙する `requirements.txt` ファイルを作成します。

    ```txt requirements.txt theme={null}
    discord.py
    ```
  </Tab>
</Tabs>

## デプロイ

プロジェクトファイルの準備ができたら、それらを Square Cloud にアップロードしてプロジェクトをホストできます。
そのためには、すべてのプロジェクトファイルを含む ZIP ファイルを作成してください。

### ダッシュボード経由

<Steps>
  <Step title="アップロードページにアクセス">
    [アップロードページ](https://squarecloud.app/ja/dashboard/new)にアクセスし、プロジェクトの zip ファイルをアップロードします。
  </Step>

  <Step title="環境を設定">
    zip をアップロードした後、プロジェクトの名前、メインファイルまたはランタイム環境、その他の設定を構成する必要があります。\
    ウェブプロジェクトをアップロードする場合は、必ず「Web Publication」を選択し、プロジェクトにサブドメインを設定してください。
  </Step>

  <Step title="プロジェクトをデプロイ">
    最後に「Deploy」ボタンをクリックして、プロジェクトを Square Cloud にホストします。\
    デプロイ後、ダッシュボードからプロジェクトのステータスとログを監視できます。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Square Cloud へのアプリケーションのアップロード" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### CLI 経由

この方法を使用するには、プロジェクトのルートディレクトリに `squarecloud.app` という名前の設定ファイルを作成する必要があります。このファイルには、プロジェクトに必要な設定が含まれます。

<Card title="詳細はこちら: Square Cloud の設定ファイルの作成方法。" icon="link" href="/ja/getting-started/config-file">
  squarecloud.app ファイルはアプリケーションを構成するために使用される設定ファイルであり、環境を定義するために使用されます。
</Card>

<Steps>
  <Step title="CLI をインストール">
    まず、環境に CLI がインストールされている必要があります。まだの場合は、ターミナルで次のコマンドを実行してください:

    ```
    npm install -g @squarecloud/cli
    ```

    すでにお持ちの場合は、更新することを推奨します。更新するには、ターミナルで次のコマンドを実行してください:

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS, and WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="認証">
    次に、認証して他の CLI コマンドを使用するには、[こちら](https://squarecloud.app/ja/account/security)で「Request API Key」をクリックして認証キーを取得します。認証キーを取得したら、次のコマンドを実行してください:

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="プロジェクトをアップロード">
    最後に、CLI を使用してアプリケーションを Square Cloud にデプロイするには、次のコマンドを実行する必要があります:

    ```bash theme={null}
    squarecloud upload 
    ```

    または、zip を手動で作成した場合は、次を使用できます:

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## ボットのテスト

すべての手順を正しく実行できたら、次のステップはボットをテスト用に招待することです。そのためには、次の手順に従ってください。

1. [Developer Portal](https://discord.com/developers/applications) にアクセスします。
2. ボットを選択します。
3. 「OAuth2」タブに移動します。
4. 「OAuth2 URL Generator」に進みます。
5. 「bot」オプションにチェックを入れます。
6. この招待を使ってボットが招待されたときに持つ権限を選択します。
7. 権限の下に、ボットの招待リンクが生成されます。次のようになります。

```txt theme={null}
https://discord.com/oauth2/authorize?client_id=00000000000000&permissions=8&scope=bot
```

URL 内の `client_id` は、実際のボットの ID に置き換える必要があることを忘れないでください。`permissions` の値も、ボットに持たせたい権限に基づいて調整が必要な場合があります。

では、すべてが機能しているかテストするために、サーバー上で次のコマンドを実行してください: `!hello`。

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/discord/testing-bot.gif" alt="デプロイ後に Discord ボットをテストする" style={{ borderRadius: "0.2rem" }} />
</Frame>

## 追加リソース

discord.py と discord.js でのボット作成に関する詳細については、[discord.py 公式ドキュメント](https://discordpy.readthedocs.io/en/latest/) と [discord.js 公式ガイド](https://discordjs.guide/) をご覧ください。そこには、これらのライブラリを最大限に活用するための詳細なガイド、チュートリアル、API ドキュメントが用意されています。

## お問い合わせ

**技術的な問題**が解決しない場合は、**専門のサポートチーム**がお手伝いします。[**お問い合わせ**](https://squarecloud.app/ja/support)いただければ、どのような問題でも喜んで解決をサポートいたします。
