目的
pythonとdiscord.pyを用いて,テキスト送信を行うdiscord botを作成する.
手順
discord ボットアカウントの取得と設定
アカウント取得
discord devから"NewApplication"(画像参照) を押し,名前を入力する.ボットアカウントが作成され,表示される.
.
招待URL発行
取得したら,左メニューからOAuth2に移動する.
下に移動すると招待URLジェネレータがあるので,適当に権限を設定後URLを作成する.後で使うので,保存すること.
ここではメッセージ送信を行うのみのbotを作成するため,Send Massages を許可する.権限はできるだけ必要十分であることが望ましい.
トークン発行
"Bot"欄を開き,Reset Tokenを押下して,TOKENを取得する.これは後で使うので保存すること.リセットすると以前のトークンは無効になる.
詳しくは: Discord.py の Intents について
ついでに,イベントを取得するかを指定する hogehoge INTENT を有効にしておく.パフォーマンスにこだわるんだ! という場合は必要十分であるとよい.
開発環境のセットアップ
Python仮想環境の作成
sudo apt install python3 pip python3-venv
python3 -m venv [venv_name=venv]
これで作成できる.venv_nameをお好きな名前にしよう(事情がなければ,venvとすればよい).作成後はこのようにvenvというディレクトリが作成される.
activateすることで初めてその環境内に入れる.シェル出力の最初に([venv_name])
と表示されるので,確認すること.activate/deactivateはそれぞれ
. ./[venv_name]/bin/activate
deactivate
である.deactivateは. ./[venv_name]/bin/deactivate
でないことに注意.
実際に作る例:
example $ python3 -m venv venv
example $ ls -l
total 4.0K
drwxrwxr-x 5 rei rei 4.0K Feb 18 12:50 venv
example $ . ./venv/bin/activate
(venv) example $
(venv) example $ deactivate
example $
discord.py の準備
以降は仮想環境内で実行されているとする.
python3 -m pip install -U discord.py
pip install python-dotenv
これでpythonプログラム内でimport discord
できるようになる.
テスト用プログラムの実行
コマンド/on_rdy
を送信するとrunning!
と返すプログラム:
bot.py
import os
from dotenv import load_dotenv
import discord
load_dotenv()
token = os.getenv("DISCORD_TOKEN")
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('/on_rdy'):
await message.channel.send('running!')
client.run(token)
.env
DISCORD_TOKEN="[YOUR_TOKEN]"
[YOUR_TOKEN]は先程発行したトークンにすること.
できたら,
python3 bot.py
で起動できる.
結果
結論
簡単,便利なdiscord bot――