LoginSignup
1
1

More than 3 years have passed since last update.

repl.itでdiscordのbotを作る

Last updated at Posted at 2021-01-26

参考にした記事: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を乗っ取られる危険があるため、 絶対に他の人に漏らしてはいけません!

コードを書く

E4D696A7-736F-4125-9D2A-17BF1A374B72.jpeg
右上の+ボタンを押します。
A4D6F5E8-E95C-406B-95E9-47FFF82C9938.png
Language→pythonを選択し、名前を適当に設定して、create replを押します。
現れたmain.pyにこれを書き込みます。

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)

B43C5611-6E60-41F4-B28F-6503AFFCB925.jpeg

keep_alive.pyを作成します。

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

そしたら、:arrow_forward:runを押してください。
5分ほど放置したら、botが動いてるはずです。

応答を追加する

コマンドを追加するには

@bot.command()
async def ping(ctx):
await ctx.send('pong')

を1行開けてペーストします。そしたらこのpingの部分に反応したい言葉を、'pong'には'を消さずに返す言葉を入れてください。

終わりに

初執筆でした。可能な限りわかりやすく説明した気ですが、それでもわかりにくい部分があると思います…
そしてprefixを変える方法を後々載せたいと思います。
最後にMamiyanonoka様に感謝いたします。

1
1
1

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
1