2019年11月27日更新
Pythonで簡単なDiscord Botの作り方!プログラミング初心者にもわかりやすく解説!
Discordでのやり取りにBotを活用しませんか?定番の応答や、あらかじめ決めた送信作業なども簡単に自動化できます。Discord Botの作り方(開発)は、Pythonでコーディングします。本記事をDiscord Botの作り方(開発)の参考にしませんか!
目次
- 1PythonでDiscord Botを作るために知っておきたいこと
- ・Discordって何?
- ・Botで何ができるの?
- ・なぜPythonを使うの?
- 2Pythonで簡単なDiscord Botを作るための準備
- ・Bot用ユーザアカウントを用意する
- ・トークンを取得する
- ・PyCharmをダウンロード・インストールする
- ・新プロジェクトの作り方
- ・discord.pyの追加と新しいファイルの設定方法
- ・Pythonのファイルの作り方
- ・開発用フォルダ・venv環境の作り方
- ・discord.pyモジュールをインストールする方法
- 3初心者OK!Pythonで簡単なDiscord Botを作ってみよう
- ・プログラムコードの一例
- ・コーディングした内容の詳細説明
- 4Pythonで作ったDiscord Botの動作確認をする方法
- 5PyCharmでBotを動作させよう
- ・サーバ上でBotと会話をしてみよう
- 6Pythonで作ったDiscord Botが正しく動かない場合
- ・ライブラリのバージョンを確認してみよう
- ・ドキュメントを読んでみよう
- ・ソースコードを読んでみよう
- ・discord.pyのサーバーで質問してみよう
- ・RoboDannyのソースコードを読んでみよう
- 7Pythonで簡単なDiscord Botの作り方を知っておこう!
PythonでDiscord Botを作るために知っておきたいこと
Discord BotをPythonで作っておくと、Discordで便利な自動化が実現できます。そのためのBotを作成するために、これから「ツール」やノウハウを解説していきます。
Discordって何?
Discordとは、2015年に提供が開始された、ゲーマー向けのボイスチャットサービスですが、ゲーマーだけではなくデベロッパー(開発者)グループや、絵画デザインコミュニティーなどの情報交換に、利用範囲が広がっているようです。
Botで何ができるの?
Botとは広い意味では、「プログラム」のことを指します。主にインターネット上のウェブサイトや、セキュリティで動作するプログラムのことです。Botの語源は「ROBOT」のBotからきており、Discord BotはDiscordで動作するBot(プログラム)です。
「Botでなにができるか」一例をあげますと、「Twitter」では、同ジャンルの「つぶやきを発信したりするBOt」や、「話しかけに応答するBot」、その他「自動的にお気に入りボタンを押すBot」などがあります。
なぜPythonを使うの?
discordBotを開発するのにPythonが選ばれるのは、PythonがC言語やJavaに比べてわかりやすくて、簡単に習得しやすく、かつ少ないコーディングで、プログラム開発できることが、第一に挙げられます。
コードを読みやすくするため、極力文法を単純化して「エラー」を最小限に抑えることができ、プログラムの信頼性を高めることを重視した「汎用高級言語」だからです。
Pythonで簡単なDiscord Botを作るための準備
”Pythonで簡単な、Discord Botを作るため”の準備としては、Discord Botを開発するために、新規にアカウントを追加設定しなくてはなりません。下のリンクをクリックして、Discord Botのサイトに移動してください。
Bot用ユーザアカウントを用意する
「Discord Botユーザーアカウント設定①」
この記事をご覧の方は、Discord Botのアカウントをお持ちではないでしょうから、赤枠の「アカウントが必要ですか?登録」をクリックします。
「Discord Botユーザーアカウント設定②」
アカウント作成画面で、「メールアドレス」「ユーザー名(好みの名前でいいです)」「パスワード」を入力して、「はい」をクリックします。
「Discord Botユーザーアカウント設定⓷」
画面右上の「新しいアプリ」をクリックします。※Discord Botが日本語化されていない場合「New Application」になっています。
「Discord Botユーザーアカウント設定④」
上図は「アカウント認証」の求めです。はじめに登録したメールアドレスの「メールアプリ」を開き確認します。
「Discord Botユーザーアカウント設定⑤」
このようなメールがユーザー宛てに来ているはずですので、確認して「メールアドレスを認証する」をクリックします。
「Discord Botユーザーアカウント設定⑥」
次にアカウント認証ページに戻り「私はロボットではありません」に✔を入れます。
「Discord Botユーザーアカウント設定⓻」
上図のようにDiscord Botに認証されBotを開発できます。
トークンを取得する
Discord Bot(プログラム)開発にはトークンの追加取得が必須です。
「Discord Botトークンの取得①」
一般情報から「ボット(Bot)」をクリックします。
「Discord Botトークンの取得②」
右端の「ボット(Bot)を追加」をクリックします。
「Discord Botトークンの取得⓷」
「このアプリにボット(Bot)を追加しますか?」と出ます。「はい、やれ」をクリックします。※Diskord Bot英語版だと「Yes Do It!」です。
「Discord Botトークンの取得④」
ボット(Bot)の上の項目「OAuth2」をクリックして開きます。
「Discord Botトークンの取得⑤」
スコープの中からボットに✔を入れます。
「Discord Botトークンの取得⑥」
下段に「URL」が表示され「コピー」をクリックしてサイトに移動するとトークンの取得は完了です
トークンの管理には注意しよう
「トークン」とはIDとパスワードでセットになったアカウントのようなものです。悪意ある他人に知られると勝手にログインされBot、サーバーの一覧などの情報を盗み見られ、他のBotユーザーにも迷惑をかけてしまいます。
PyCharmをダウンロード・インストールする
上記の公式ダウンロードページから「PyCharm」をOS、バージョンを確認してダウンロードします。
上図を確認すると、OSにあわせたダウンロードファイルがあり選択できます。「窓」はWindowsのことです。なおコーディング開発用にバージョンは「コミュニティ」を確認の上選択してください。
ダウンロードファイルをダブルクリックしてインストールします。上図で「Next」をクリックして次ページに移動します。
新プロジェクトの作り方
インストールが済みPyCharmを起動させるとユーザーに対するプライバシーポリシーが現れます。確認して「Continue(続ける)」をクリックします。
次の画面に移り「Create Project」(新プロジェクト開発)を確認してクリックします。
ここではユーザーの新規プロジェクトの名前とパスを入力して確認します。
「Project Interpreter」をクリックして、詳細情報を表示させます。Base Interpreterに「Python36」が、記載されているのを確認します。
discord.pyの追加と新しいファイルの設定方法
PythonでBotをコーディングするためインストールします。
「Discord.pyの追加と設定①」
Discord作成後「File」から「Settings」と進み、設定画面を開きます。
「Discord.pyの追加と設定②」
「Project: discordbot」から「Project Interpreter」と移動してから「+」ボタンをクリックします。
「Discord.pyの追加と設定⓷」
検索欄に「discord」と入力し、検索の結果、表示された「discord.py」を選択して、「Install Package」ボタンをクリックします。
Pythonのファイルの作り方
DiscordBotの「project」を右クリックして「New」から「Python File」をクリックします。
Name入力欄に「Bot.py」と入力して「OK」をクリックします。
これでBotを作成する準備ができました。
開発用フォルダ・venv環境の作り方
$ mkdir discord_bot_sample
開発用のBotのソースコードを、保存するためのフォルダを作っておきます。
$ cd discord_bot_sample/
$ python3.6 -m venv venv
$ source venv/bin/activate
(venv) $
上のコマンドは、venv環境作成のためのものです。
discord.pyモジュールをインストールする方法
(venv) $ pip install discord.py
「pip」コマンドで、「Discord.py」のモジュールをインストールできます。ウェブサイトからでなく、上記コマンドを実行するだけで、簡単にインストールできます。
初心者OK!Pythonで簡単なDiscord Botを作ってみよう
プログラムコードの一例
それでは簡単なDiscord Botを作成しましょう。作り方(コーディング)は下記の通りにコードを入力します。
# cording: utf-8
from discord.ext import commands
bot = commands.Bot(command_prefix='$')
@bot.command(name="久しぶり")
async def hello(ctx):
await ctx.send(f"どうも、{ctx.message.author.name}さん!")
@bot.command(name="バーイ")
async def goodbye(ctx):
await ctx.send(f"あとで、{ctx.message.author.name}さん!")
# 取得したトークンを「TOKEN_HERE」の部分に記入
bot.run('TOKEN_HERE')
コーディングした内容の詳細説明
上記のコーディング内容を順を追って説明します。
エンコード
# coding: utf-8
「文字コードは「UTF-8」です」と、インタプリタ(Python)に追加します。
モジュールのインポート
from discord.ext import commands
Botのコーディングに必要なツールをDiscord.pyから追加取得(import)します。
Bot(プログラム)の作成
bot = commands.Bot(prefix='$')
上記のようにコーディングを追加設定しますと、Botは先頭に「$」のつく文字列をBotへのコマンドと認識します。※「Prefix」は頭につける文字という意味です。
「久しぶり」というコマンド名
@bot.command(name="久しぶり") async def hello(ctx): await ctx.send(f"どうも、{ctx.message.author.name}さん!")
上記のコーディング内容には「$久しぶり」とTwitterなどで投稿されたとき、「どうも*****さん」と返すようコマンドをBotに追加するようコーディングがなされています。
送信者の表示方法
ctx.message.author.name
コマンドを実行したときBotに「ctx」という引数が送られます。ctx.messageには、コマンドが実行される引き金になったメッセージが、代入されています。送信元をauthorで取得し名前をnameに代入しています。
「バーイ」コマンド名を記す
@bot.command(name="バーイ") async def goodbye(ctx): await ctx.send(f"あとで、{ctx.message.author.name}さん!")
Botにコマンドを追加しています。「$バーイ」を受け取ると別れの挨拶が返されます。
Bot実行
bot.run('TOKEN_HERE')
Bot.runでDiscord Botが動作し始めます。
Pythonで作ったDiscord Botの動作確認をする方法
この章では動作確認の方法を解説します。
PyCharmでBotを動作させよう
DiscordBotのメニューバーから「Run」を選択してプルダウンメニューの中の「Run」をクリックして実行します。
サーバ上でBotと会話をしてみよう
上図のように会話形式になっていたら成功です。コマンドの追加や応答に変化をつけたりして、工夫してみてください。
Pythonで作ったDiscord Botが正しく動かない場合
ライブラリのバージョンを確認してみよう
Pythonで作ったDiscord Botが正しく動かない場合、インストールしたdiscord.pyのバージョンと、マニュアルや参考サイトの記事とが違っていないか、確認してみましょう。大方では違いがなくても「設定の仕方」に違いがあることも多いようです。
ドキュメントを読んでみよう
困ったときには、ドキュメントマニュアルをよく読んで、理解を深めることが一番です。英語表記ですが、Google翻訳で読むことが可能です。
ソースコードを読んでみよう
ドキュメントを熟読してもプログラムコーディングの問題が解決できないときは、コードをなぞって動作を追ってみましょう。簡単ではありませんが、Pythonのマニュアルを広げて、一行づつみていけばなんとか理解できるようになるものです。
discord.pyのサーバーで質問してみよう
discord.pyのことは、discord.pyの公式サーバーで質問してみましょう。discordBot関連の雑談や、プログラム関連の質問の応答などが行われていて、通常の質問サイト以上のdiscordやBotに関する的確な答えが、素早く得られるでしょう。
RoboDannyのソースコードを読んでみよう
開発者Danny氏がdiscord.pyを元にコード作成したBot(プログラム)で、Botの作り方満載のRoboDannyのソースコードを読むことでDiscord Botの理解が深まるでしょう。
Pythonで簡単なDiscord Botの作り方を知っておこう!
いくつかDiscord Botを作っておくと、Discordの運用がスムーズになります。簡単Botプログラムの作り方は上記の通りですが、今後DiscordBotの作り方を勉強すれば、どんどん便利なDiscord Botを簡単に開発できることでしょう。