はじめに

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

前提

discord.pyは3.5.3以降のバージョンのPythonで動作します。Python2.7のような旧バージョンはサポートされていません。Python3.4以下は依存関係にあるライブラリ (aiohttp) がサポートされていないため、サポートしていません。

インストール

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環境では、依存関係にある以下のライブラリが必要になるので注意してください。

  • libffi

  • libnacl

  • python3-dev

Debianベースのシステムのでは、依存関係ライブラリの取得に、以下のコマンドが便利です。

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

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

仮想環境

システムへのインストールをライブラリで汚したくない場合や、現在インストールされているシステムとは異なるバージョンのライブラリを維持したい場合があります。または、システムへのライブラリインストールの権限がない場合もあります。こういった状況時のために、3.3の標準ライブラリには「仮想環境」というものが用意されています。

より詳細な情報や使い方は 公式ドキュメントに存在します。

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

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

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

import discord

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

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

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