Pythonで簡単なDiscord Botの作り方!プログラミング初心者にもわかりやすく解説!

Discordでのやり取りにBotを活用しませんか?定番の応答や、あらかじめ決めた送信作業なども簡単に自動化できます。Discord Botの作り方(開発)は、Pythonでコーディングします。本記事をDiscord Botの作り方(開発)の参考にしませんか!

Pythonで簡単なDiscord Botの作り方!プログラミング初心者にもわかりやすく解説!のイメージ

目次

  1. 1PythonでDiscord Botを作るために知っておきたいこと
  2. Discordって何?
  3. Botで何ができるの?
  4. なぜPythonを使うの?
  5. 2Pythonで簡単なDiscord Botを作るための準備
  6. Bot用ユーザアカウントを用意する
  7. トークンを取得する
  8. PyCharmをダウンロード・インストールする
  9. 新プロジェクトの作り方
  10. discord.pyの追加と新しいファイルの設定方法
  11. Pythonのファイルの作り方
  12. 開発用フォルダ・venv環境の作り方
  13. discord.pyモジュールをインストールする方法
  14. 3初心者OK!Pythonで簡単なDiscord Botを作ってみよう
  15. プログラムコードの一例
  16. コーディングした内容の詳細説明
  17. 4Pythonで作ったDiscord Botの動作確認をする方法
  18. 5PyCharmでBotを動作させよう
  19. サーバ上でBotと会話をしてみよう
  20. 6Pythonで作ったDiscord Botが正しく動かない場合
  21. ライブラリのバージョンを確認してみよう
  22. ドキュメントを読んでみよう
  23. ソースコードを読んでみよう
  24. discord.pyのサーバーで質問してみよう
  25. RoboDannyのソースコードを読んでみよう
  26. 7Pythonで簡単なDiscord Botの作り方を知っておこう!

PythonでDiscord Botを作るために知っておきたいこと

Discord BotをPythonで作っておくと、Discordで便利な自動化が実現できます。そのためのBotを作成するために、これから「ツール」やノウハウを解説していきます。

Discordって何?

Discord

Discordとは、2015年に提供が開始された、ゲーマー向けのボイスチャットサービスですが、ゲーマーだけではなくデベロッパー(開発者)グループや、絵画デザインコミュニティーなどの情報交換に、利用範囲が広がっているようです。

Botで何ができるの?

Botとは広い意味では、「プログラム」のことを指します。主にインターネット上のウェブサイトや、セキュリティで動作するプログラムのことです。Botの語源は「ROBOT」のBotからきており、Discord BotはDiscordで動作するBot(プログラム)です。

なぜPythonを使うの?

出典: https://www.python.jp/install/windows/install_py3.html

「Botでなにができるか」一例をあげますと、「Twitter」では、同ジャンルの「つぶやきを発信したりするBOt」や、「話しかけに応答するBot」、その他「自動的にお気に入りボタンを押すBot」などがあります。

なぜPythonを使うの?

なぜPythonを使うの?2

discordBotを開発するのにPythonが選ばれるのは、PythonがC言語やJavaに比べてわかりやすくて、簡単に習得しやすく、かつ少ないコーディングで、プログラム開発できることが、第一に挙げられます。

コードを読みやすくするため、極力文法を単純化して「エラー」を最小限に抑えることができ、プログラムの信頼性を高めることを重視した「汎用高級言語」だからです。

Pythonで簡単なDiscord Botを作るための準備

”Pythonで簡単な、Discord Botを作るため”の準備としては、Discord Botを開発するために、新規にアカウントを追加設定しなくてはなりません。下のリンクをクリックして、Discord Botのサイトに移動してください。

DiscordBot用ユーザアカウント

Bot用ユーザアカウントを用意する

Bot用ユーザアカウント1

「Discord Botユーザーアカウント設定①」
この記事をご覧の方は、Discord Botのアカウントをお持ちではないでしょうから、赤枠の「アカウントが必要ですか?登録」をクリックします。

Bot用ユーザアカウント2

「Discord Botユーザーアカウント設定②」
アカウント作成画面で、「メールアドレス」「ユーザー名(好みの名前でいいです)」「パスワード」を入力して、「はい」をクリックします。

Bot用ユーザアカウント3

「Discord Botユーザーアカウント設定⓷」
画面右上の「新しいアプリ」をクリックします。※Discord Botが日本語化されていない場合「New Application」になっています。

Bot用ユーザアカウント5

「Discord Botユーザーアカウント設定④」
上図は「アカウント認証」の求めです。はじめに登録したメールアドレスの「メールアプリ」を開き確認します。

Bot用ユーザアカウント6

「Discord Botユーザーアカウント設定⑤」
このようなメールがユーザー宛てに来ているはずですので、確認して「メールアドレスを認証する」をクリックします。

トークンを取得する

「Discord Botユーザーアカウント設定⑥」
次にアカウント認証ページに戻り「私はロボットではありません」に✔を入れます。

トークンを取得する6

「Discord Botユーザーアカウント設定⓻」
上図のようにDiscord Botに認証されBotを開発できます。

トークンを取得する

Discord Bot(プログラム)開発にはトークンの追加取得が必須です。

トークンを取得

「Discord Botトークンの取得①」
一般情報から「ボット(Bot)」をクリックします。

トークンの管理

「Discord Botトークンの取得②」
右端の「ボット(Bot)を追加」をクリックします。

トークンの管理3

「Discord Botトークンの取得⓷」
「このアプリにボット(Bot)を追加しますか?」と出ます。「はい、やれ」をクリックします。※Diskord Bot英語版だと「Yes Do It!」です。

トークンの管理9

「Discord Botトークンの取得④」
ボット(Bot)の上の項目「OAuth2」をクリックして開きます。

トークンの管理10

「Discord Botトークンの取得⑤」
スコープの中からボットに✔を入れます。

トークンの管理12

「Discord Botトークンの取得⑥」
下段に「URL」が表示され「コピー」をクリックしてサイトに移動するとトークンの取得は完了です

トークンの管理には注意しよう

「トークン」とはIDとパスワードでセットになったアカウントのようなものです。悪意ある他人に知られると勝手にログインされBot、サーバーの一覧などの情報を盗み見られ、他のBotユーザーにも迷惑をかけてしまいます。

PyCharmをダウンロード・インストールする

PyCharmをダウンロード
Download PyCharm: Python IDE for Professional Developers by JetBrains

上記の公式ダウンロードページから「PyCharm」をOS、バージョンを確認してダウンロードします。

PyCharmをダウンロード2

上図を確認すると、OSにあわせたダウンロードファイルがあり選択できます。「窓」はWindowsのことです。なおコーディング開発用にバージョンは「コミュニティ」を確認の上選択してください。

PyCharmをダウンロード・インストール1

ダウンロードファイルをダブルクリックしてインストールします。上図で「Next」をクリックして次ページに移動します。

新プロジェクトの作り方

discord.pyの追加1

インストールが済みPyCharmを起動させるとユーザーに対するプライバシーポリシーが現れます。確認して「Continue(続ける)」をクリックします。

discord.pyの追加2

次の画面に移り「Create Project」(新プロジェクト開発)を確認してクリックします。

discord.pyの追加3

ここではユーザーの新規プロジェクトの名前とパスを入力して確認します。

discord.pyの追加4

「Project Interpreter」をクリックして、詳細情報を表示させます。Base Interpreterに「Python36」が、記載されているのを確認します。

discord.pyの追加と新しいファイルの設定方法

PythonでBotをコーディングするためインストールします。

discord.pyの追加と新しいファイル1

「Discord.pyの追加と設定①」
Discord作成後「File」から「Settings」と進み、設定画面を開きます。

discord.pyの追加と新しいファイル2

「Discord.pyの追加と設定②」
「Project: discordbot」から「Project Interpreter」と移動してから「+」ボタンをクリックします。

discord.pyの追加と新しいファイル3

「Discord.pyの追加と設定⓷」
検索欄に「discord」と入力し、検索の結果、表示された「discord.py」を選択して、「Install Package」ボタンをクリックします。

Pythonのファイルの作り方

開発用フォルダ・venv環境の作り方1

DiscordBotの「project」を右クリックして「New」から「Python File」をクリックします。

開発用フォルダ・venv環境の作り方2

Name入力欄に「Bot.py」と入力して「OK」をクリックします。

開発用フォルダ・venv環境の作り方3

これでBotを作成する準備ができました。

開発用フォルダ・venv環境の作り方

$ mkdir discord_bot_sample

開発用のBotのソースコードを、保存するためのフォルダを作っておきます。

$ cd discord_bot_sample/
$ python3.6 -m venv venv
$ source venv/bin/activate
(venv) $

なぜPythonを使うの?6

上のコマンドは、venv環境作成のためのものです。

discord.pyモジュールをインストールする方法

(venv) $ pip install discord.py

discord.pyモジュールをインストールする方法1

「pip」コマンドで、「Discord.py」のモジュールをインストールできます。ウェブサイトからでなく、上記コマンドを実行するだけで、簡単にインストールできます。

初心者OK!Pythonで簡単なDiscord Botを作ってみよう

プログラムコードの一例

それでは簡単なDiscord Botを作成しましょう。作り方(コーディング)は下記の通りにコードを入力します。

discord.pyモジュールをインストールする方法2

# 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

discord.pyモジュールをインストールする方法6

「文字コードは「UTF-8」です」と、インタプリタ(Python)に追加します。

モジュールのインポート

from discord.ext import commands

discord.pyモジュールをインストールする方法6

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}さん!")

discord.pyモジュールをインストールする方法3

上記のコーディング内容には「$久しぶり」とTwitterなどで投稿されたとき、「どうも*****さん」と返すようコマンドをBotに追加するようコーディングがなされています。

送信者の表示方法

ctx.message.author.name

Pythonで簡単なDiscord Bot3

コマンドを実行したとき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')

Pythonで作ったDiscord Botが正しく動かない場合6

Bot.runでDiscord Botが動作し始めます。

Pythonで作ったDiscord Botの動作確認をする方法

この章では動作確認の方法を解説します。

PyCharmでBotを動作させよう

Pythonで作ったDiscord Bot

DiscordBotのメニューバーから「Run」を選択してプルダウンメニューの中の「Run」をクリックして実行します。

サーバ上でBotと会話をしてみよう

Pythonで作ったDiscord Bot

上図のように会話形式になっていたら成功です。コマンドの追加や応答に変化をつけたりして、工夫してみてください。

Pythonで作ったDiscord Botが正しく動かない場合

ライブラリのバージョンを確認してみよう

Pythonで作ったDiscord Botが正しく動かない場合、インストールしたdiscord.pyのバージョンと、マニュアルや参考サイトの記事とが違っていないか、確認してみましょう。大方では違いがなくても「設定の仕方」に違いがあることも多いようです。

ドキュメントを読んでみよう

困ったときには、ドキュメントマニュアルをよく読んで、理解を深めることが一番です。英語表記ですが、Google翻訳で読むことが可能です。

ソースコードを読んでみよう

Pythonで作ったDiscord Botが正しく動かない場合2

ドキュメントを熟読してもプログラムコーディングの問題が解決できないときは、コードをなぞって動作を追ってみましょう。簡単ではありませんが、Pythonのマニュアルを広げて、一行づつみていけばなんとか理解できるようになるものです。

ThumbDiscordのログイン方法とできない・サーバーに繋がらない時の対処法も解説!
オンラインゲーム等でよく使用されるボイスチャットツールDiscord。ここではそのDisco...

discord.pyのサーバーで質問してみよう

discord.pyのことは、discord.pyの公式サーバーで質問してみましょう。discordBot関連の雑談や、プログラム関連の質問の応答などが行われていて、通常の質問サイト以上のdiscordやBotに関する的確な答えが、素早く得られるでしょう。

discord.py

RoboDannyのソースコードを読んでみよう

Pythonで簡単なDiscord Bot6

開発者Danny氏がdiscord.pyを元にコード作成したBot(プログラム)で、Botの作り方満載のRoboDannyのソースコードを読むことでDiscord Botの理解が深まるでしょう。

ThumbDiscord(ディスコード)の音声通話のやり方!Discordの初期設定や聞こえない対処法など解説!
ボイスチャットアプリ・Discord(ディスコード)をダウンロードすれば、ゲーム配信や音声通...

Pythonで簡単なDiscord Botの作り方を知っておこう!

Pythonで簡単なDiscord Bot

いくつかDiscord Botを作っておくと、Discordの運用がスムーズになります。簡単Botプログラムの作り方は上記の通りですが、今後DiscordBotの作り方を勉強すれば、どんどん便利なDiscord Botを簡単に開発できることでしょう。

関連するまとめ

Original
この記事のライター
山口 長二
きょうは霜が降りていました冬本番ですね。皆さんがんばりましょう。