参考にした記事:Discord Pythonボットを24時間起動します。
2021/02/04追記:後でわかったのですが、repl.itは画面を閉じると90秒ほどでオフラインになり、uptimebotのpingも間に合いません。なので、heroku+uptimebotが無難でしょう。
こんにちは。Discordのbotをrepl.itを使用して稼働させてみましょう。
今回はDiscordやrepl.itのアカウント作成についての説明は省略しますのでご了承ください。
使用するものはiPad だけです。
#トークンを取得する
https://discord.com/deveropers にアクセスし、横のメニューから「bot」を選択します。まだbotを作成してない場合は他の記事を参考にしていただけるとありがたいです。
そしてTokenの下にある(copy)ボタンを押します。このトークンが漏れるとbotを乗っ取られる危険があるため、 絶対に他の人に漏らしてはいけません!
#コードを書く
右上の+ボタンを押します。
Language→pythonを選択し、名前を適当に設定して、create replを押します。
現れたmain.pyにこれを書き込みます。
from discord.ext import commands
import os
import traceback
bot = commands.Bot(command_prefix='/')
token = os.environ['TOKEN']
@bot.event
async def on_command_error(ctx, error):
orig_error = getattr(error, "original", error)
error_msg = ''.join(traceback.TracebackException.from_exception(orig_error).format())
await ctx.send(error_msg)
@bot.command()
async def ping(ctx):
await ctx.send('pong')
bot.run(token)
keep_alive.pyを作成します。
from flask import Flask
from threading import Thread
app = Flask('')
@app.route('/')
def main():
return 'Bot is aLive!'
def run():
app.run(host="0.0.0.0", port=8080)
def keep_alive():
server = Thread(target=run)
server.start()
続けてhelp.txtを作成して
discord.py
flask
を書き込み、.envを作成します
TOKEN= XXXXXXXXXXXXXXXXXXX
そしたら、runを押してください。
5分ほど放置したら、botが動いてるはずです。
#応答を追加する
コマンドを追加するには
@bot.command()
async def ping(ctx):
await ctx.send('pong')
を1行開けてペーストします。そしたらこのpingの部分に反応したい言葉を、'pong'には'を消さずに返す言葉を入れてください。
#終わりに
初執筆でした。可能な限りわかりやすく説明した気ですが、それでもわかりにくい部分があると思います…
そしてprefixを変える方法を後々載せたいと思います。
最後にMamiyanonoka様に感謝いたします。