はじめに

これはDiscord APIを利用したアプリケーションを作成するのに便利なPythonライブラリ、discord.pyのドキュメントです。

前提

discord.py は Python 3.8 以降で動作します。それ以前のPython に対するサポートは提供されていません。 Python 2.7 以下はサポートされていません。Python 3.7 以下はサポートされていません。

インストール

PyPIから直接ライブラリをインストールできます。

python3 -m pip install -U discord.py

Windowsを使用している場合は、以下のコマンドで実行してください。

py -3 -m pip install -U discord.py

音声のサポートが必要な場合は、 discord.py ではなく、以下の例のように discord.py[voice] を使うべきです。

python3 -m pip install -U discord.py[voice]

Linux環境では、依存関係にある以下のライブラリが必要になるので注意してください。

Debianベースのシステムでは、次のコマンドで依存関係にあるライブラリを取得できます。

$ apt install libffi-dev libnacl-dev python3-dev

自分の権限の確認は忘れないようにしてください!

仮想環境

システムにインストールされている環境をライブラリで汚したくない場合や、現在システムにインストールされているものとは別のバージョンのライブラリを利用したい場合があると思います。システムへライブラリをインストールする権限がない場合などもです。こういった要望に応えるため、Python3.3の標準ライブラリには異なるバージョンの管理を補助する「仮想環境」と呼ばれる概念が追加されました。

より詳しいチュートリアルは Virtual Environments and Packages にあります。

簡単に仮想環境を構築する方法。

  1. プロジェクトの作業ディレクトリに移動してください。

    $ cd your-bot-source
    $ python3 -m venv bot-env
    
  2. 下記コマンドで仮想環境を有効化します。

    $ source bot-env/bin/activate
    

    Windowsの場合は、こちらを使ってください。

    $ bot-env\Scripts\activate.bat
    
  3. いつものようにpipインストールを実行します。

    $ pip install -U discord.py
    

おめでとうございます。これで仮想環境のセットアップができました。

基本概念

discord.pyは イベント の概念を中心としています。イベントは何かを受け取り、それに対する応答を行います。例えば、メッセージが発生すると、メッセージの発生に関連するイベントを受け取り、そのイベントに対して応答を返すことができます。

以下はイベントの仕組みを紹介する簡単な例です。

# This example requires the 'message_content' intent.

import discord

class MyClient(discord.Client):
    async def on_ready(self):
        print(f'Logged on as {self.user}!')

    async def on_message(self, message):
        print(f'Message from {message.author}: {message.content}')

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

client = MyClient(intents=intents)
client.run('my token goes here')