はじめに

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

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

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

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')