「DiscordBotを作ってみたい、だけどPCを持っていない」という人向けにAndroid端末1つでDiscordBotを作って実際に動作させるまでの方法を紹介します。
なるべく初心者向けに説明していますが、Pythonやdiscord.py, Linuxコマンド, Vimコマンドなどの詳しい説明は省略しています。
##動作環境
- Android 9
- Termux 0.90
- Python 3.8.1
- discord.py 1.3.1
#1. Termuxのインストール
TermuxはGoogle Playストアからインストールできます。
https://play.google.com/store/apps/details?id=com.termux
Termuxとはroot化不要でLinux環境を用意することができるエミュレータです。
ここではPythonとVimを使ってDiscordBotを書く方法を説明します。
#2. Termuxでの準備
まずターミナルで以下のコマンドを実行し、aptの更新とPython, Vimのインストールを行います。($はコマンドラインであることを表すもので入力は不要です)
$ apt update
$ apt upgrade
$ apt install python
$ apt install vim
次にPythonで簡単にDiscordBotを動かすことができるdiscord.pyというライブラリをインストールします。
$ pip install discord.py
※もしインストールが上手くいかない場合はpip install yarl
で先にyarlをインストールしておくことで解決する場合があります。
次に実行するPythonファイルを置くディレクトリを作り、移動します。
※{}で囲まれた部分は説明してる内容で置き換えてください
$ mkdir {好きなディレクトリ名}
$ cd {上で作ったディレクトリ名}
#3. Pythonファイルの作成
$ vim {好きなファイル名}.py
上のコマンドを実行すると新規ファイルがVimが開かれるので、キーボードでi
と入力し、INSERTモードにします。
ここで下のコードをコピペしてください。(後述のサイトにあるものを一部改変し拝借させていただきました)
import discord
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_message(message):
# 送り主がBotだった場合反応したくないので
if message.author.bot:
return
# 「おはよう」で始まるか調べる
if message.content.startswith("おはよう"):
# メッセージを書きます
m = "おはようございます" + message.author.name + "さん!"
# メッセージが送られてきたチャンネルへメッセージを送ります
await message.channel.send(m)
client.run("token")
#4. Botアカウントを作成する
Chromeなどのブラウザで「https://qiita.com/PinappleHunter/items/af4ccdbb04727437477f 」のサイトのサイトを開き、「Bot用のトークンを手に入れる」の項に従ってBotアカウントを作成して使用したいサーバーにBotを追加しておきます。
ここで「後で使います」と言われているトークンをコピーしておいてください。
※このトークンはBotを動かすためのパスワードのようなものなので扱いには十分気を付けてください。
#5. Pythonファイルを実行する
Termuxを開き、cliant.run("token")
のtokenの部分に、先程コピーしてきたトークンをペーストし、ESC
→:wq
でファイルを保存しVimを閉じます。
下のコマンドでPythonファイルを実行します。
$ python {先程作成したファイル名}.py
これでLogged in as...
のように表示されればBotが動作していることになります。
Botを追加したサーバーでおはよう
などを送信して返答が来るか試してみてください。
終了したいときはTermuxを終了すればBotも動かなくなります。もしBotを常時動かしたい場合は、Herokuなどを利用することでできます。
ちなみにTermuxではGitも使えるので、AndroidのみでHerokuにデプロイすることも可能です。
##参考サイト
Pythonで簡単なDiscord Botの作り方
Android端末上でDiscordのbotを動かす(Termux)
AndroidでTermuxを使いroot化なしでLinux環境を作る!