PythonでDiscordBotを作ろう
Discord使ってますか?結構流行ってますよね?(知らんけど サーバーを建てれば自分だけの島が完成するし、他のサーバーに入っていろんな人と交流するのも楽しいですよね^^;

Discordは、コミュニケーションツールの中でも比較的オープンなツールです。なので、自作もしくは誰かが作ったBotを簡単に導入することができます。以下のようなサイトでは、作ったBotをホスティングしています。このサイトのように世界中の有志が、さらにDiscordを使いやすくしてくれています。

しかし、該当のサーバーのニーズを100%満たせる物を探すのは一苦労です。また、それがうまく合致するかは微妙です。なので、今回は自作してみようの第一弾です。(第一弾で終わる可能性も有)
1. DevelopperポータルからBotに必要な情報を集めよう
- Discord Developpers Portalにログインする。※アカウントがない場合は事前に作成してください。
2. アプリケーションを作成
①右上の「New Application」をクリックする

②アプリケーションの名前を入力

③「Bot」をクリック

④「Add Bot」をクリック

⑤「Yes, do it!」をクリック


⑥ 「Reset Token」をクリック

⑦ 「Token」をコピーする

2. PythonでBotを作る
Botのトークンが取得できたら、あとはこちらのものです!サクッと特定の文字が入力された時に反応するBotを作成しましょう!
- 初めにpipでDiscordのBotを作るためのライブラリをインストールしておきます。
sudo pip3 install discord
2. Botを作っていく
#!/usr/bin/env python3
import discord
tk = "NjQ....." # 1-⑦で入手したトークンを貼り付ける
client = discord.Client()
@client.event
async def on_ready():
print("Bot準備完了!")
@client.event
async def on_message(message):
if message.author.bot:
return
# 「おはよう」というメッセージに反応して「おはよう」とチャンネルに投稿する
if message.content.startswith("おはよう"):
channel = message.channel
send_content = "おはよう"
await channel.send(send_content)
# 「調子はどう?」に反応して「いい感じ、あなたは?」と返して返信を待って、返信内容を表示する
if message.content.startswith("調子はどう?"):
channel = message.channel
await channel.send('いい感じ、あなたは?')
def check(m):
return len(m.content) != 0 and m.channel == channel
msg = await client.wait_for('message', check=check)
send_content = msg.content
await channel.send(send_content)
client.run(tk)
コマンドではなく、サクッと作りたかったのでメッセージの始まりを監視するようにしました。
③ 動かす
python3 testBot.py
これだけだと、コマンドラインで動かしている時だけしか動きません。これが何を意味するかというと、これを実行しているコンピューターの電源が切れるとBotも止まってしまいます。
もし、VPSやクラウド、RaspberryPiなど24時間電源が投入されているコンピューターを操作できる環境であれば、以前書いた記事に常駐化して動かす方法を書いていますので、そちらをご覧ください。
3. Botをサーバーに招待する
2でうまく動いていることを確認したら、早速Discordのサーバーに作成したBotを招待しましょう!
- 「AUTHORIZATION METHOD」を「In-app AUTHORIZATION」にセット

2. 「Scope」を「Bot」にセット

3. 作成したBotに必要な権限を設定 ※今回はチャットに投稿するのでテキスト周りの権限を適当に追加

4. 「Save Changes」で設定内容を保存

5. URL GeneratorでURLを生成

6. botを選択

7. 一番下の作成されたURLを「copy」する ※パーミッションは特に選択しなくてもOK

8. コピーしたURLをブラウザに貼り付ける
9. Botを入れたいサーバーを選択する

10. Authorizeをクリックして完了

これで完了です!
今回は、画像多めで説明してきました。ですが、画像というのは儚いものです。Discord側の細かいアップデートで少し文言やボタンの位置が違うかもしれません。。。皆様も良きDiscordライフを!
