0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

discord.py で簡単bot作成

Posted at

目的

pythonとdiscord.pyを用いて,テキスト送信を行うdiscord botを作成する.

手順

discord ボットアカウントの取得と設定

アカウント取得

discord devから"NewApplication"(画像参照) を押し,名前を入力する.ボットアカウントが作成され,表示される.
image.png
image.png

招待URL発行

取得したら,左メニューからOAuth2に移動する.
下に移動すると招待URLジェネレータがあるので,適当に権限を設定後URLを作成する.後で使うので,保存すること.
ここではメッセージ送信を行うのみのbotを作成するため,Send Massages を許可する.権限はできるだけ必要十分であることが望ましい.

image.png
image.png
image.png

トークン発行

"Bot"欄を開き,Reset Tokenを押下して,TOKENを取得する.これは後で使うので保存すること.リセットすると以前のトークンは無効になる.
詳しくは: Discord.py の Intents について
ついでに,イベントを取得するかを指定する hogehoge INTENT を有効にしておく.パフォーマンスにこだわるんだ! という場合は必要十分であるとよい.
image.png
image.png

開発環境のセットアップ

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

で起動できる.

結果

image.png

結論

簡単,便利なdiscord bot――

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?