Discordアプリケーションの作成には約5分かかり、コーディングは必要ありません。Developer Portalにサインインし、「New Application」を押し、ボットを追加して、必要なインテントを有効にし、トークンを生成して、招待リンクを作成するだけです。 最後のステップまでは、フォームに入力していくだけです。そのあとでアプリケーションをどう使うか、つまり自分でコードを書くのか、それとも機能セットを動かしてくれるホストにトークンを渡すのかは、別に判断すべきことです。

「Discordアプリケーション」とは何か

アプリケーションとは、Discordのプラットフォーム上で作るものすべてのために、Discordが作成するコンテナのことです。名前、アイコン、クライアントIDを持ち、必要に応じてボットユーザーを紐付けられます。アプリケーション自体は何もしません。実際にログインし、メッセージを投稿し、コマンドに応答するのは、紐付けられたボットユーザーです。多くの人は「アプリケーション」と「ボット」を同じ意味で使っています。実際には、ボットを作るためにアプリケーションを作成するからです。ただし、OAuth2のスコープと権限を扱うようになると、この違いが重要になります。それらは手入力するのではなく、アプリケーションの代わりに要求されるものだからです。

手順

  1. Developer Portalを開く。 discord.com/developers/applications にアクセスし、ボットを所有するアカウントでサインインします。
  2. 「New Application」を押す。 名前を付けます。これはアプリケーションの内部名になります。あとから名前を変えても、すでに動いているものには影響しません。
  3. Botタブを開く。 ボットユーザーは自動的に追加されます。ここでユーザー名を設定し、アバターをアップロードします。これが、ボットが参加するすべてのサーバーに表示されます。
  4. 必要な特権インテントを有効にする。 Privileged Gateway Intentsの下にある、Server Members IntentとMessage Content Intentは、初期状態ではオフです。メッセージの本文を読み取る、またはメンバーの参加や退出に反応するボットは、両方を有効にしないとログインすらできません。
  5. 「Reset Token」を押す。 Discordがトークンを生成し、一度だけ表示します。すぐにコピーしてください。既存のトークンを再表示するページはありません。また、「Reset Token」をもう一度押すと、今コピーしたトークンは無効になります。
  6. 招待リンクを作成する。 OAuth2タブのURLジェネレーターを使い、bot と applications.commands のスコープにチェックを入れ、ボットが実際に必要とする権限にチェックを入れて、生成されたリンクをコピーします。
  7. サーバーに招待する。 リンクを開き、管理しているサーバーを選んで、Discordが表示する権限を承認します。

つまずきやすいミス

  • アプリケーション名とボットのユーザー名を混同する。 これらは別々の名前にできます。あとでアプリケーション名を変えても、ボットの名前は変わりません。ボット名はBotタブで変更します。
  • トークンを貼り付ける前に失ってしまう。 コピーする前にタブを閉じてしまっても、慌てる必要はありません。「Reset Token」をもう一度押せば、新しいトークンが発行されます。古いトークンは単に無効になります。
  • インテントを設定せず、ボットがオンラインにならない理由がわからない。 コードが要求している特権インテントがポータルで有効になっていない場合、ボットは一部だけ動く状態で接続されるわけではありません。Discordは「disallowed intents」というエラーで、ログイン自体を拒否します。
  • 招待リンクで、いつもの癖で管理者権限を要求する。 それでも動作はしますが、Discordがサーバーのオーナーに表示する権限画面の中で最も怖い表示であり、招待が断られる一般的な原因です。ボットが使うものだけにチェックを入れてください。
A user's bot token runs on a Noxyr node and comes online as their own branded bot. Your token Noxyr node MyBot Online

アプリケーションを作ったあとにすること

アプリケーション、ボットユーザー、トークンを用意できたら、そこから2つの道があります。ボットのコードを自分で書くか、ダウンロードして、自分のマシンやホストで動かすことができます。これについては無料のボットホスティングガイドで説明しています。もう1つは、コードを一切書かないことです。既存の機能セットを、あなたのボットの名前で動かすサービスにトークンを貼り付けます。Noxyrのカスタムボットがまさにこれにあたります。チケット、ショップ、セキュリティ、プレゼント企画、認証などの機能を、先ほど設定した名前とアバターで応答させられます。Top.ggへの投票と引き換えに無料でホストされます。2つのインテントを含む完全なセットアップ手順は、カスタムボットのドキュメントにあります。

どちらの道を選んでも、先ほど作成したアプリケーションだけがあれば十分です。アプリケーションを作ったことで、どちらかの方向に縛られることはありません。

よくある質問

Discordアプリケーションを作るのにプログラミングの知識は必要ですか? いいえ、必要ありません。アプリケーション、ボットユーザー、トークンの作成は、すべてDeveloper Portalでクリックして行う操作です。ボットの動作を自分で書くことを選んだ場合にだけ、コーディングが必要になります。

クライアントIDとボットトークンの違いは何ですか? クライアントIDは公開情報で、すべての招待リンクに含まれており、共有しても安全です。トークンは認証情報で、持っている人は誰でもボットにログインできます。パスワードと同じように扱ってください。

あとからアプリケーションやボットの名前を変えられますか? はい、どちらも、いつでもポータルから変更できます。トークン、参加しているサーバー、DiscordのユーザーIDに紐付いたものは、失われることはありません。

すべてのボットに特権インテントが必要ですか? いいえ。メッセージの本文を読み取るボット(Message Content Intent)や、メンバーの参加・退出とロールの情報が必要なボット(Server Members Intent)だけが、それらを有効にする必要があります。スラッシュコマンドだけを使うシンプルなボットは、どちらも必要ありません。

Discordアプリケーションの作成は無料ですか? はい、アプリケーションの作成、トークンの生成、どこへの招待も無料です。費用がかかる可能性があるのは、その裏で動かすコードの実行です。無料のホストや、Noxyrのカスタムボットのようなサービスを使う場合を除きます。

トークンを失ったり、漏えいしたかもしれない場合はどうすればよいですか? Botタブに戻り、「Reset Token」を押してください。古いトークンは、それが使われていたすべての場所で即座に無効になり、必要な場所に貼り付けられる新しいトークンが発行されます。

アプリケーションを作成したら、その招待リンクを正しく作るために招待リンクとOAuth2スコープのガイドをご覧ください。または、Noxyrを無料で追加すれば、コードを1行も書かずに、新しいアプリケーションを完全に動作するボットにできます。