DiscordでBotをつくる

はじめに

DiscordのAPIを利用してオウム返しをするBotを作成してみます.

環境

  • Windows7 64bit
  • Python3.5 64bit

環境構築

discord用のライブラリがあるのでそれを利用します.

1$ python3 -m pip install discord

コード

こんな感じのコードでメッセージを受信してオウム返し出来ます.

asyncioの関係で3.4と3.5では文法が変わります.
こんな感じ
@asyncio.coroutine → async
yield from → await

まぁドキュメントに書いてあるんですけどね

 1import discord
 2
 3client = discord.Client()
 4
 5@client.event
 6async def on_ready():
 7    print("-"*20)
 8    print("ユーザー名:", client.user.name)
 9    print("ユーザーID:", client.user.id)
10    print("-"*20)
11
12@client.event
13async def on_message(message):
14	if not message.author.id == client.user.id:
15		await client.send_message(message.channel, message.content)
16		print("投稿しました")
17
18	print("投稿者:", message.author)
19	print("メッセージ:", message.content)
20
21client.run(os.environ["DISCORD_API_TOKEN"])

結構簡単に出来るのが良いですね

追記 2018-07-12
検索で来る人が結構いるみたいなのでTOKENの取り方とBotをサーバーに参加させる方法

DISCORD_API_TOKENは以下のURLから発行できます
https://discordapp.com/developers/applications/me

ここから新しいアプリ -> アプリを作成からアプリを作ります
アプリのアイコンの下辺りにBotの項目があるのでBotユーザーを作成から作成します
確認のダイアログが出てくるので実行をクリックして続行します
トークンの横にあるクリックして表示から取得できます

作ったBotはOAUTH2 URL GENERATORの項目からbotだけ有効にしてURLをコピーしてアクセスすると自分が所属するサーバーにBotを参加させることができます