とらのメモ

IT関係やガジェットについての雑記

Discord bot作成チュートリアル

はじめに

Discord bot(Python)の記事を書く上で初心者向けにbotのつくりかたの説明をするための記事です。 だいたい同じだと思いますが、Windows環境での説明になります。 ※たまにスマホでもできますか?と聞かれますが、ほぼ無理なので諦めたほうがいいです。

  • Discordに登録していること
  • Windowsの操作がある程度できる を前提に進めていきます。

Python導入をしていなければ、こことかを見ながらインストールしましょう。 www.python.jp

1.Developerサイトにbotを登録しよう

まず、以下のサイトにアクセスしてログインしましょう。

discordapp.com

ログインすると、このような表示がされると思います。 (画像にある6個のAppは以前僕が作ったものなので気にしないでください) f:id:ikayome:20190703111048p:plain

右上にあるNew Applicationを押すと、新しく作るAppの名前を聞かれるので適当に何か書きましょう。この名前は後から変更可能です。 f:id:ikayome:20190703112408p:plain

名前を入力してAppの設定画面が開かれたら、 左のタブからBotを選択。右画面のAdd botを押して、Yes,do itを押すとbotが作成されます。 ここのタブのアイコンや名前を変更することで、実際にDiscordで表示されるbotの見た目変わります。 f:id:ikayome:20190703112559p:plain

これでbot自体は生成されたので、copyを押して、トークンをどこかにメモっておきましょう。 (トークンはNTk1OXXXXXXXXXxxxxxx-xxxxx-xxxxx)みたいな文字列です) f:id:ikayome:20190703113759p:plain

2.botをサーバーに追加する

左のタブをOauth2に切り替えて下までスクロールしてbotを選択してURLを生成し、コピーします。 f:id:ikayome:20190703151626p:plain

ブラウザのアドレスバーにコピーしたURLを貼り付けるとbotをサーバーに招待するための画面が出てきます。 そこからサーバーを選択して認証をしましょう。 (招待ができるのは自分がつくったサーバーもしくは管理者権限を持っているサーバーのみです) f:id:ikayome:20190703152323p:plain

3.botの中身を作る

botの体に当たる部分は完成したので、次に頭脳に当たる部分を作っていきます。 まず、コマンドプロンプトを開いて必要なライブラリをインストールします。

pip install discord

そして中身の部分を記述していきます。

import discord  # discordのライブラリをインポート

client = discord.Client()  # clientオブジェクトの生成

@client.event
async def on_ready():
    print('ログインしました。')

@client.event
async def on_message(message):
    if message.content == 'うー':
        await message.channel.send('にゃー')

client.run("ここにメモしたトークン")

うー と言ったときににゃーと返すサンプルです。 f:id:ikayome:20190703145323p:plain

これを動かすためにはメモ帳(できればNotePad++などのテキストエディタ) に上のコードをコピーして、保存します。 保存するときに、すべてのファイル を選択してbot.pyと名前をつけてわかりやすい場所に保存しましょう。 f:id:ikayome:20190703150109p:plain

次に、左下のWindowsマークを右クリック→検索を押してcmdと入力してコマンドプロンプトを開きます。 そこに先ほど保存したbot.pyコマンドプロンプトドラッグ&ドロップしましょう。 コマンドプロンプトでEnterを押すと実行されます。 ログインしました。というメッセージが表示されれば、botは問題なく動いています。

c:\Work>C:\Work\sample\bot.py
ログインしました。

終了するときにはCTRL+Cか、ウインドウを閉じましょう。

以上、チュートリアルでした。 さらにdiscord.pyの理解を深めたい方はリファレンスを読むことをお勧めします。 discordpy.readthedocs.io