著者は、 Write for DOnations プログラムの一環として、 Free and Open SourceFundを選択して寄付を受け取りました。

序章

Discord は、ゲーマー、オープンソースコミュニティ、会議主催者などが使用する人気のある音声およびテキストメッセージングプラットフォームです。 優れたボイスチャット、さまざまなテキストチャネル、自動アシスタントまたは「ボット」を使用した拡張性などの機能により、人気が高まっています。

このガイドでは、Pythonプログラミング言語を使用してDiscordボットを構築し、Ubuntu20.04サーバーにデプロイします。 ボットをプログラムするには、DiscordPythonライブラリdiscord.pyを使用します。

注: Discordには、チャット/ボイスルームに2つの異なる名前があります。 ドキュメントのどこにいるかに応じて、これらをサーバーとギルドの両方と呼びます。 このチュートリアルでは、ギルドという用語を使用します。 これらの用語は同じ意味で使用でき、多くの場合、Discordの公式ドキュメントに記載されていることを知っておいてください。

前提条件

このチュートリアルを完了するには、次のものが必要です。

ステップ1—DiscordGuildのボットユーザーを作成する

コーディングを開始する前に、ボットを作成してDiscord開発者ポータルに登録する必要があります。

開発者ポータルにサインインし、新しいアプリケーションボタンをクリックしてプロセスを開始します。 Discordアプリケーションを使用すると、DiscordAPIを操作できます。 ボットはアプリケーションにバインドされています。 それが彼らの機能です。

Click the New Application Button

次に、モーダルにアプリケーションの名前を追加し、作成ボタンを押します。 このチュートリアルでは、SammySharkBotという名前を付けます。

Name Your Application

Discordがアプリケーションを作成します。 次に、ボットに関する情報が記載されたページに注目します。 ボットのアイコンとして機能する画像を追加することを選択できます。 ページのアプリアイコンセクションにあるすっきりとしたアイコンボタンをクリックします。 これは必須ではありません。

Add an optional icon for your bot

アイコンをアップロードした場合は、変更を保存するように求めるダイアログボックスが表示されます。 変更の保存を押してアイコンを保存します。

Save your changes

アプリケーションをセットアップしたので、次はアプリケーションに関連付けられたボットを作成します。 画面左側の設定ナビゲーションペインのボットリンクに移動します。

Add a bot to your application

次に、ボットの追加ボタンをクリックして、ボットをアプリケーションに追加します。

Confirm the creation of the bot

これを行うと、ボットが表示され、前に設定したオプションのアイコンが表示されます。 このページを覚えておいてください。 APIトークンを取得するには、後で戻ってくる必要があります。

Bot confirmation page

次のようなモーダルが表示されますボットユーザーを追加すると、アプリがDiscordで目に見えるようになります。 ただし、このアクションは取り消せません。 賢明に選択してください。 先に進み、を押しますはい、やってください! ボットユーザーを作成します。

次に、画面左側の設定ナビゲーションペインのOAuth2リンクに移動します。 ボットが正しく機能できるように、適切な権限を追加する必要があります。

Navigate to OAuth2 menu

ボットが機能できるスコープを追加する必要があります。 ボットオプションのみをチェックしてください。これは、このボットに実行させたいのはそれだけだからです。 他のスコープの詳細については、DiscordOAuth2ドキュメントにアクセスしてください。

Add bot designation

次に、下にスクロールして、ボットに次の権限を付与します:チャネルの表示メッセージの送信メッセージ履歴の読み取り。 これにより、ボットが実行できるアクションのセットが制限されます。 制限なしでボットを作成したい場合は、管理者オプションを選択できます。 これはお勧めしません。

これを行うと、DiscordURLの後にCopyボタンが表示されます。 そのボタンをクリックしてリンクをコピーし、ブラウザの新しいウィンドウで開きます。

Add bot permissions and copy the link

ボットがギルドに接続するためのプロンプトが表示されます。 複数のギルドにボットをインストールする権限がある場合があるため、ここで複数のボットに注意することができます。 ボットをインストールするギルドを選択し、承認をクリックします。

Add bot to your Guild

ボットがギルドに追加される前に、Discordはボットが持つすべての権限を表示します。 これにより、インストールしているものを確実に認識できます。 ボットに特定の権限を与えたくない場合は、チェックを外すことができます。 ただし、このボットは他の方法では機能しないため、これを行わないでください。 承認をクリックして、ボットを受け入れてギルドに追加します。

Authorize bot permissions

ギルドに戻り、新しいメンバーに関する投稿が表示されるチャンネルを確認してください。 ボットがギルドに参加したことに気付くでしょう。 ボットはオフラインで表示されますが、ボットは右側のメンバーリストにも表示されます。 これは、ボットコードを開始した後に変更されます。

Check if your bot joined your guild

ボットがギルドに追加されたので、Pythonコードを使用してボットを実現する準備が整いました。

ステップ2—プロジェクト用のPython仮想環境を作成する

コーディングを開始する前に、Python開発者環境をセットアップする必要があります。 このステップでは、管理を容易にするために、仮想環境内にPython要件をインストールしてアクティブ化します。

まず、すべての仮想環境を保存するために使用できるディレクトリをホームディレクトリに作成します。

  1. mkdir ~/.venvs

次に、Pythonを使用して仮想環境を作成します。

python3 -m venv ~/.venvs/discord

これにより、.venvsディレクトリ内にdiscordというディレクトリが作成されます。 内部には、Pythonのローカルバージョンとpipのローカルバージョンがインストールされます。 これを使用して、プロジェクト用の分離されたPython環境をインストールおよび構成できます。

プロジェクトのPython要件をインストールする前に、仮想環境をアクティブ化します。

  1. source ~/.venvs/discord/bin/activate

プロンプトが変化して、Python仮想環境内で操作していることを示します。 (discord)user@host:~$のようになります。

仮想環境をアクティブにして、[X43X]