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

AIと爆速で日報のテンプレートを返すDiscord botを作った話

Last updated at Posted at 2025-12-23

はじめに

エンジニアの皆さん、日報書いていますか?
私は最近毎日書いていますが、正直なところ、毎回テンプレートをコピペしてくるのが非常に面倒だと感じていました。

日付を書き換えたり、昨日のフォーマットを探してきたり。この数秒のロスが積み重なるとストレスになります。

そこで今回、ChatGPTを使ってPython × Discord Bot で、コマンド一発でMarkdown形式の日報テンプレートを返してくれるBotを爆速で作ったので作り方を共有します。

なお、私は学生で、金銭的な理由からまだホスティングサービスでの常時稼働まではできていません。

今回紹介するのは「ローカルで動かすBot」になります。

完成イメージ

Discordのチャット欄で !nippou と打つだけです。

自分!nippou

Bot

# 日報
日付: 2025-12-23

## 今日したこと
- 

## 明日すること
- 

このように、今日の日付が入った状態で、コピーしやすいコードブロック形式で返してくれます。 あとはこれをコピペして埋めるだけ。毎日の日報入力が一瞬で終わります。

手順解説

ここからは、実際にBotを作る手順を解説します。かなりすぐ終わります。

1. Discord Bot の作成

まず、Botのアカウントを作成します。

  1. Discord Developer Portal にアクセス

2.「New Application」をクリックし、適当な名前(例: DailyReportBot)を入力

  1. メニューの「Bot」をクリック

  2. Tokenの項目にある「Reset Token」を押して、Tokenをコピーしてメモしておく(後で使います)
    ※ Reset Token を押した際に Discord アカウントのパスワード入力が求められます。

  3. 同じページの下の方にある Privileged Gateway Intents の 「MESSAGE CONTENT INTENT」 をONにする(これを忘れるとコマンドが反応しません)

2. 必要ライブラリのインストール

Bot を動かすための最低限の環境を整えます。

今回は Homebrew を使って Python をインストールしました。

brew install python

python環境で今回使用するライブラリをインストールします。

python3 -m pip install discord.py python-dotenv

3. Bot のコード作成

フォルダを作成し、bot.py というファイル名で以下のコードを保存します。

bot.py
import os
import discord
from discord.ext import commands
from datetime import datetime
from dotenv import load_dotenv
from textwrap import dedent

load_dotenv()
TOKEN = os.getenv("DISCORD_TOKEN")

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_ready():
    print(f"ログイン完了:{bot.user}")

@bot.command()
async def nippou(ctx):
    today_str = datetime.now().strftime("%Y-%m-%d")
    # テンプレートの中身
    template = dedent(f"""
        # 日報
        日付: {today_str}

        ## 今日したこと
        -

        ## 明日すること
        -
    """).strip()

    await ctx.send(f"```markdown\n{template}\n```")
# Botの起動
bot.run(TOKEN)

4. 環境変数の設定

コードと同じフォルダに .env というファイルを作成し、先ほどコピーしたBotのトークンを貼り付けます。

touch .env
.env
DISCORD_TOKEN=ここに先ほどメモしたBotトークンを貼り付け

Botトークンは他人に知られるとBotを乗っ取られる危険があります。GitHub等にアップロードする際は .env を .gitignore に含めるなどして、絶対に公開しないようにしましょう。

5. Bot を起動

ターミナルで以下を実行します。

python3 bot.py

ログイン完了: DailyReportBot#1234 のように表示されれば起動成功です。

※ Bot はターミナル上で動作しているため、ターミナルを閉じたり実行を中止すると停止します。
再度利用する際は、もう一度 python3 bot.py を実行して起動してください。

6. Bot をサーバーに招待する

自分のサーバーで使えるように招待します。

  1. Developer Portal の左メニュー「OAuth2」を選択

  2. OAuth2 URL Generator項目のScopes で bot にチェック

  3. Bot Permissions で Send Messages (メッセージを送信) にチェック

  4. Generated URLから生成されたURLをブラウザで開き、自分のサーバーを選択して「認証」ボタンを押す

7. 使ってみる

Discordの任意のチャンネルで、以下のコマンドを送信します。
!nippou
このようなテンプレートが返ってきたら成功です。
スクリーンショット 2025-12-23 22.19.40.png

これで、毎日の「テンプレどこだっけ」「日付書くの面倒」から解放されました。

おわりに

今回はローカル実行版ですが、このBotのおかげで日報作成のハードルが下がり、毎日快適になりました。

もしこの記事の反響が良ければ、RenderRailway を使ってデプロイし、常時稼働するBotとして公開したいです。

良さそう、作ってみたいと思ったら、ぜひLGTMをお願いします。

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