7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python初心者がDiscordBotを起動する

Last updated at Posted at 2020-02-04

前書き

初投稿のN高生です。
この記事はPythonの知識ゼロだった当記事著者がPythonの基礎知識を勉強して簡素なDiscordBotを開発する記事になっています。
ここで説明する内容は自分が参考にしたサイトを内容をほとんど真似て書いています。ご了承ください。
なお筆者自体まだ勉強中なのでこのコマンドにこんな意味があるなどわからないところが多いので大目にみてほしいです...
なお、この記事が最適解ではないと思うので、色々なサイトを調べることをお勧めします。

動作環境

Python 3.7.0
pip 20.1
discord.py 1.3.1

まず最初に

Discordをインストールしていない場合は下記リンクからインストールしてください。(ブラウザ版でも大丈夫です)
Discordインストール

Pythonの開発環境を用意しましょう。これがないと何もできませんからね。
こちらを参考にして開発環境を整えてください。
Pythonの開発環境を用意しよう!

さて、開発環境が整いました。
「すぐにBotを作りたい!」という気持ちもわかりますが、まずは基礎を勉強しましょう。
基礎を理解していると開発がかなり楽に進みます。
**「基礎なんてどうでもいいからとりあえず動かしたい!」**って人は飛ばしてもらって大丈夫です。
僕はこちらのサイトの入門編の内容に一通り目を通しました。(1ヶ月半ほどかかりました...)
Python学習講座 入門

さてはじめにBotのアカウントを作成しDiscordサーバーに登録しましょう。Discordサーバーをまだ作成していない人はまずは、Discordサーバーを作成しましょう。

Discordサーバーの作り方

画面左端に丸い「+」のマークがあります。
スクリーンショット 2020-02-10 14.51.24.png
これを押すと
スクリーンショット 2020-02-10 14.51.58.png
こんな画面が出てくるので「サーバーを作成」をクリックします。
その後サーバーの名前をつけてください。下にあるサーバー地域はJapanのままで大丈夫です。
これでDiscordサーバーの作成は完了です!簡単だね!

Botアカウント作成

Discord Developer Portal でBotアカウントの作成ができます。

サイトに飛んだらまずApplicationsで右上のNew Applicationsをクリックします。
次にNAMEで自分のBotに名前をつけて、Createをクリックします。

その後画面の左側にあるSETTINGSからBotをクリックします。
discordbotsample2.png

右側にあるAdd Botをクリックして**Yes, do it!**をクリック。
discordbotsample3.png
discordbotsample4.png

そうすると画面中央あたりにTOKENという欄があるのでそこのClick to Reveal Tokenをクリックし、Tokenを確認します。(このTokenは後で使います)

※注意!このTokenは他の人に絶対教えてはいけません
discordbotsample5

最後に左側のSETTINGSからOAuth2をクリックします。
discordbotsample2.png
下にスライドしていくとOAuth2 URL Generatorの下にたくさんのチェックボックスがあると思います。
このチェックボックスからbotだけチェックを入れて、下に表示されているURLをコピーします。
discordbotsample6.png

コピーしたURLをそのままGoogleの検索欄にペーストして検索しましょう。
そのURLに移動すると、下の画像のような画面が表示されます。
discordbotsample7.png
「サーバーを選択」と書いてあるプルダウンをクリックして、自分のサーバーを選んで認証をクリックします。そうすると、選択したサーバーにBotが追加されます。

プログラムの作成と起動

いよいよPythonを使ってBotを動かしていきます。
まずdiscord.py をインストールしていきます。

discord.pyのインストール
$ pip install discord.py

そしてこの下のコードをdiscordbot.pyという名前で保存してください。
ソースコードエディタの指定は特にないので既にインストールしているもので大丈夫です。
ちなみにオススメのエディタはAtomです。
保存先は今回わかりやすいように「書類」(英語表記だとDocuments)に保存しましょう。

discordbot.py
#インストールした discord.py を読み込む
import discord

#接続に必要(らしい)オブジェクトを生成
client = discord.Client()

# 起動時に動作する処理
@client.event
async def on_ready():
    # 起動したらターミナルにログインしたことが通知される
    print('ログインしました')

# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
    # 送り主がBotだった場合反応したくないので
    if client.user != message.author:
        # /dog と発言したら「ワンッ!」と返信する処理
        if message.content == '/dog':
            await message.channel.send('ワンッ!')

# 「TOKEN」の部分を自分で作成したBotのアクセストークンに置き換えてください
client.run("TOKEN")

Botを起動します
(下の文を一行づつコピペしてターミナルに打ち込んでください)

Botの起動
$ cd Documents
$ python3 discordbot.py

Botが参加しているDiscordのサーバーのテキストチャンネルで
/dogと送信するとワンッ!と返信するBotができます。
discordbotsample.png

発展

ここまでできればあとは作りたい機能を追加するだけです。
僕はこのあと現在時刻の取得をできるようにしたり、webスクレイピングという技術を使って天気予報を表示できるようにしたりしました。
またこのままではターミナルをつけていないとBotが使えないと思います。
そこでHerokuというホスティングサービスを利用して24時間いつでも使えるようにしました。
このあたりの実装はまだ自分の理解度だと正しい教え方ができないと思うので、他の方の記事を参考にしてやってみてください。

参考にした記事

Pythonで実用Discord Bot(discordpy解説)
Webサービスを利用して天気情報を取得する by Python
【discord Bot開発】pythonが色々簡単すぎるので、爆速で天気予報Botをデプロイしたよ!
Pythonエラー一覧(日本語)

7
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
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?