1
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?

More than 3 years have passed since last update.

コマンドを打つとチャンネルを作ってくれるdiscordbotをPythonで作ろう

Last updated at Posted at 2021-10-23

#Botとは

一般的なBotはいい印象はないそうです。
総務省HPより。)

しかし、ゲームでよく使われるBotとは、ユーザーの特定のアクションに対して決まったリアクションを返すロボット(ro BOT)です。今ではSiriやAlexaなどもユーザーの声に反応して検索してくれるという立派なBOTです。

#botを作るためのセットアップ
まずは自分のPCにdiscordパッケージをインストールする必要があります。
自分はVSCodeで書いたプログラムをLinux環境で動かしていますが、一応VSCodeでも動かせます。

Linux(自分はUbuntu20.04 LTS)でのインストール方法(4つ必要です。)

sudo apt install libffi-dev libnacl-dev python3-dev

sudo apt update

sudo apt upgrade

sudo python3 -m pip install -U discord.py

# 音声も必要な場合(なくても構いません)
sudo python3 -m pip install -U discord.py[voice]

Windowsでのインストール方法(管理者権限でコマンドプロンプト。Python3がインストールされていること前提)

python3 -m pip install -U discord.py


# 音声も必要な場合(なくても構いません)
python3 -m pip install -U discord.py[voice]

次に、BotのTOKENを所得する必要がありますが、webサイトにたくさん転がっているので特に詳しい説明はしません。
参考

最後に、エディタ(コードを書くためのメモ帳みたいなもの)をセットします。

普通のメモ帳でもできなくはないですが、エラーなどを発見してくれる専用の機能を持った方がわかりやすいので、そちらを使います。
VSCode
自分の環境に合ったものをインストールしてください。

#早速作ってみる

ログインした時のアクション

1行目に、

import discord

と書きます。これは、discordというモジュールをここで使う、という表記です。

client = discord.Client()

@client.event
async def on_ready():
    print(f'Logged in as: {client.user.name}')
    print(f'With ID: {client.user.id}')

解説

説明していきます。

client = discord.Client() は実行するクライアントを変数に代入しています。

@client.event は、上で指定したclientが起こす行動について以下に書かれています。というものを示す目印です。

async def についてですが、async はコルーチン関数を理解しないといけないので、パスします。discotdbotを作るときには基本的にこれを使う、と理解してしまってもいいかもしれません。 (個人的には基本これ以外は使わないと思います。)

@client.event
async def on_ready():
    print(f'Logged in as: {client.user.name}')
    print(f'With ID: {client.user.id}')

client.run('TOKEN')

on_ready() はdiscord.pyで定められている関数で、botを動かせる状態になったら、以下のプログラムを実行します。という意味です。この関数をon_startとかに変えたら動きません。
print()文は、コンソール (VSCodeでいうターミナルです。標準だと下の方に存在しています。) に出力されます。

client.run('TOKEN') : TOKEN は Discord Developer Portalからコピーします。

動かしたBotの名前(Discord Developer Portalで決めたBotの名前です。)

動かしたBotのユーザーID(下の赤い四角で囲んだところに書かれている18桁の数字)
の順で書かれます。
d370cb32c917f319c3396ef5f07e1815.png


次回は、書かれたメッセージに対しての反応を書いていきます

1
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
1
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?