DiscordでBotを動かす(Python編)

PHPでBotを動かしていましたが、Discordからbotに対してのコマンドが上手く動かなかったため、Pythonでも動かしてみましたが、こっちはちゃんと動作してくました。

ライブラリのインストール

$ python3.6 -m pip install -U discord.py

ソースコード

import discord
client = discord.Client()

@client.event
async def on_ready():
    channel = client.get_channel('XXXX_channelno_XXXX')
    await client.send_message(channel, 'Botがログインしたよ')

@client.event
async def on_message(message):
    if message.content.startswith('/hi'):
        reply = 'こんにちは!!'
        await client.send_message(message.channel, reply)
    elif message.content.startswith('/hello'):
        reply = '挨拶ありがとう'
        await client.send_message(message.channel, reply)

# Tokenの入力
client.run('XXXX_TOKEN_XXXX')
  • ログインしたときに「Botがログインしたよ」と投稿
  • /hi のコマンドで「こんにちは!!」を投稿
  • /hello のコマンドで「挨拶ありがとう」を投稿

こんな感じで表示されます。

部屋のID取得

ブラウザでアクセスするとURLにチャンネル番号が表示されてますが、普通にデスクトップアプリでアクセスした場合にはどこから表示させればよいのかと思いました。

ユーザ設定→テーマ→開発者モードをonにする

これでチャンネル名で右クリックすると「IDを取得」という項目が表示されますのでコピーして利用できます。