LoginSignup
2
3

More than 5 years have passed since last update.

7分でDiscordで動くbotをPythonで作る

Last updated at Posted at 2018-08-14

discordっていうSkype以上、Slack未満なチャットツールがあります。

こないだソシャゲのクランの方々に言われてdiscordを導入したらわりといい感じでして。
いろいろ触ってみて、「もしや?」と思ったら案の定botが作れるではありませんか。

で、作ってみたところ結構クランのみんなから好評で楽しかったので導入の仕方的なのを書いてみたいと思います。

discord側での作業

discordアカウント作成

すでにある場合は大丈夫です。

手順は割愛。

Botの作成、およびトークン作成

にアクセスしてログイン。

disbot.png

なんかでてますがw
右側の【Create an Application】をクリック

次の画面で、
disbot2.png

と出てくるので、
【Name】のところに好きな名前を入れて右下にある【Save Changes】をクリック。
これでアプリケーションが登録されました。

続いてBotを作成します。

スクリーンショット 2018-08-13 21.44.17.png

左ペインに【Bot】という項目があるのでこいつをクリックすると上記の画面のようになります。
ここで、【Add Bot】をクリックします。

すると、

disbot3.png

こうなります。
とりあえずこうなっていればOKです。

で、
 【Click to Reveal Token】
という項目があるのでこいつをクリックして、でてきた文字列をコピーしておいてください。
Botを作るにおいて大事なやつです。

で、次に左ペインの、【OAuth2】というところをクリックして、
disbot4.png

【Bot】にチェック、して【Copy】をクリック。

これでクリップボードに招待用URLが保存されました。

保存されたURLをブラウザのURL欄に貼り付けると招待ページに飛べます。

招待ページで追加したいサーバを選択。

招待するサーバを選択するときの注意

自分が管理者権限なり、ユーザを招待する権限を持っていないとそのページに飛んでもサーバが選択できないです。
なので、もしサーバがでてこないといった場合は、権限周り疑って、サーバを作った人に「権限くれ」ってお願いしましょう。

とりあえずここまでで、サーバにBotを追加、招待できました。

ただしまだ、ステータスがオフラインになっていると思います。

これから実際にプログラムを書いて、Botを起動させることでオンラインになっていきます。

Botの起動

まずはdiscord.pyをインストールします。
自分はMacでやりましたが、レンタルサーバなりでもコマンドは変わらないと思います。(windowsはちょっとわからない・・・)

https://github.com/Rapptz/discord.py
にかかれているとおりにやれば入ります。

# Mac
python3 -m pip install -U discord.py

# windows
py -3 -m pip install -U discord.py

※よしなに、
pip install discord
とかやっても問題はないです。

無事インストールできたら、プログラムを書いていきます。

bot.py
import discord
import asyncio

client = discord.Client()

@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')

@client.event
async def on_message(message):
    if message.content.startswith("はろー"):
        m = "こんにちは、" + message.author.name + "さん"
        await client.send_message(message.channel,m)

client.run('token')

これでとりあえずは動くはずです。

client.run('token')
tokenのところは、
さきほどdiscordで【Click to Reveal Token】をクリックしてコピーして文字列を埋め込んでください。

この状態で、


python bot.py

で実行してみます。
すると作成したbotがオンラインになるのでそのチャンネルで、
はろー
とつぶやくと「こんにちは ○○ さん」といった形で返してくれるはずです。

以上です

とりあえずBotが動くところまではできました。
ただこのままだとまだ実用的ではないのでおいおいにきちんとデプロイするところまで書いていきたいと思います。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3