クイックスタート¶
ここでは、ライブラリの概要を説明します。ライブラリがインストールされていることを前提としているので、インストールを終えていない人は インストール を参照してください。
最小限のBot¶
では早速、特定のメッセージに対して、返事をするBotを作ってみましょう。
結論から書くと、このように書くことができます。
import discord
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
client.run('your token here')
ファイルの名前を example_bot.py
としましょう。ライブラリと競合してしまうので、 discord.py
というファイル名にはしないでください。
さて、では順を追って一つづつ説明していきます。
最初の行は、ただライブラリをインポートしただけです。 ModuleNotFoundError や ImportError が発生した場合は インストール を見て、ライブラリをきちんとインストールしましょう。
次に、
Client
のインスタンスを作成します。クライアントはDiscordへの接続を行います。続いて、
Client.event()
デコレータを使用してイベントを登録します。ライブラリにはたくさんのイベントが用意されています。このライブラリは非同期のため、「コールバック」のスタイルで処理を行います。コールバックは基本的に、何かが発生した場合に呼び出される関数です。今回の場合だと、Botがログインして、設定などを終えたときに
on_ready()
が、メッセージを受信したときにon_message()
が呼び出されます。on_message()
イベントは受信したメッセージすべてに対して呼び出されるため、Bot自身からのメッセージは無視するように設定する必要があります。これは、メッセージの送信者であるMessage.author
と、Bot自身を表すClient.user
が等しいか比較することで実装できます。その後、
Message.content
が'$hello'
から始まるかどうかを確認し、当てはまればそのチャンネルに'Hello!'
という返事を送信します。最後に、ログイン用トークンを用いてBotを起動します。トークンの取得やBotの作成について分からないことがあれば、 Botアカウント作成 を参照してください。
さて、これでBotは完成なので、Botを 実行 してみましょう。幸いにも、これはただのPythonスクリプトなので実行は簡単です。直接実行が可能です。
Windowsの場合:
$ py -3 example_bot.py
その他のシステムの場合:
$ python3 example_bot.py
これで、あなたが作ったBotと遊ぶことができます。