Discord用にBOTを作る

シェアする

DiscordのBOTって様々な種類があって作る必要もなさそう。

けど、興味がわいたので手を出してみる。

はじめは、開発環境の構築から。

今回pythonとdiscord.pyを学ぶにあたり参考にしたサイト

Pythonで簡単なDiscord Botの作り方 - Qiita
# 今回作るもの Discordで **「おはよう」** と入力すると **「おはようございます、"ユーザー名"さん!」** と返事をする簡単なBotを作ります。後から反応する言葉を変えたりできます。 ほとんど(h...

まずBOTについて知り開発環境を作る

DiscordのBOTはPython環境にdiscord.pyをインストールして作るみたい。

discord.pyについて:http://discordpy.readthedocs.io/en/latest/

ならばとりあえずPython環境を構築してみよう。
(Pythonなんぞ。後で調べよ

今回はwindows版を使ってみました。

ダウンロードリンク:https://www.python.org/downloads/windows/

インストールしたらコマンドプロンプトを起動して下記の記述でdiscord.pyをインストール。

”python -m pip install -U discord.py”

公式Githubとは異なるけど気にしない。https://github.com/Rapptz/discord.py

ずらずらっとダウンロードが始まりsuccessfullyが出たら完了。

BOTのトークンを取得

BOTを稼働させるにはBOTを登録しトークンをプログラムに組み込む必要があります。

ここのサイトへ行きBOTを登録します。

App nameがBOTの名前となります。登録後の変更は可能です。

設定したら下に進みBotの”Create a Bot User”を選択します。

次にトークンを確認します。

通常トークンは非表示なのでクリックして表示し取得します。

BOTをプログラミングする

テキストエディタなどで作っていきます。

ただし、日本語を扱う場合文字コードをUTF-8にすること。

ファイルの名前は今回”bot.py”とします。
保存先はやり易いようにコマンドプロンプトを開くとセットされているユーザーフォルダとします。

例)”C:\Users\xxx”

次にbot.pyに以下の記述をします。

#discord.pyのインポート
import discord
client = discord.Client()

# BOTログイン処理
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')

# BOT動作プログラム
@client.event
# async defでコルーチン宣言
# on_messageメッセージがサーバーに送信されたとき呼び出される。
async def on_message(message):
 # messageが「おはよう」で始まるか?
 if message.content.startswith("おはよう"):
  # 送り主がBotだった場合反応しないように条件つける。
  if client.user != message.author:
   # メッセージをmに格納。
   # message.author.nameに送り主の名前が入る。
   m = "おはようございます" + message.author.name + "さん!"
   # awaitはコルーチン内部でコルーチンを宣言する時に。
   # メッセージが送られてきたチャンネルへメッセージを送ります
   await client.send_message(message.channel, m)

client.run("トークン")

最後の行には取得したトークンを入力します。

BOTを実行してみる

コマンドプロンプトで”python bot.py”と実行します。

するとBOTのログインが行われDiscord上のサーバーでBOTがオンラインとなります。

実際に”おはよう”と送信して返事が返ってきたら成功です。

但し、現状のままだとBOTはPCを起動しログインしている時にしか動作しないため、常時動作するBOTはpythonが動作する外部サーバーを持つ必要があるかも知れません。

オリジナルCGIでPythonが対応したサーバー
https://www.xserver.ne.jp/

pythonを学びつつ何か使えそうなBOT作ろうかと思います。

フォローする