Discord Botの作り方入門 〜俺がどん底から這い上がった、アジトを支えるテクノロジー〜
おい、お前ら!元気にしてたか?きこにぃだ。
今日はちょっと真面目な話をするぜ。まぁ、俺が真面目な話をするって言うと、「またなんかやらかしたんじゃねぇの?」って思う奴もいるだろうな。安心しろ。今回は建設的な話だ。
俺の人生、波瀾万丈どころか、まるでジェットコースターが奈落の底に突っ込んで、そこから無理やりロケットブースターで打ち上げられたようなもんだ。元年商1.6億から、2億の負債、自己破産、うつ病。そこからTikTokで這い上がって、今がある。株式会社終焉祝祭の代表、そして俺たちの「アジト」の運営。
アジト、知ってるよな?俺のコミュニティだ。ここでは毎日、色んな奴らが集まって、情報交換したり、励まし合ったり、時にはくだらないことで笑い転げたりしてる。このアジト、実は裏側で色んなテクノロジーが動いてるんだ。その中でも特に重要なのが、Discord Bot。
今日は、そのDiscord Botをどうやって作るか、お前らにとっつきやすいように、俺の経験も交えながら解説していくぜ。
なぜ今、Discord Botなのか?
「Botなんて難しそう」って思うかもしれない。でもな、今の時代、プログラムの知識がゼロでも、ある程度のBotは作れるようになってきてる。そして、そのBotがどれだけ俺たちの生活を豊かにしてくれるか、俺自身が身をもって体験してる。
俺がうつ病でどん底だった時、人とコミュニケーションを取るのが本当に辛かった。でも、アジトを立ち上げて、みんなが繋がっていくのを見て、少しずつ元気を取り戻していった。その中で、コミュニティの運営って、本当に大変なんだって痛感したんだ。
- 新規メンバーへの自動案内
- ルール違反者の警告
- 定期的なイベント告知
- メンバーの活動状況の可視化
これらを全部手動でやってたら、俺のメンタルが持たない。いや、マジで。だから、Botの力が必要だった。Botは文句も言わず、24時間365日、俺たちのために働き続けてくれる。まさに、俺の右腕であり、左腕であり、時には第3の腕になってくれる存在なんだ。
具体的な数字で見るBotの効果
アジトを立ち上げた当初、新規メンバーが月に平均で100人くらい入ってきてた。その時に、手動でWelcomメッセージを送ったり、ルールの説明をしたりしてたんだが、対応漏れが年間で約15%発生してた。これは結構な数字だ。せっかく入ってきてくれたのに、ちゃんと迎え入れられないってのは、コミュニティとして致命的だろ?
そこでBotを導入したんだ。Welcomメッセージの自動送信、チャンネル案内、ロール付与。これらを自動化したら、なんと対応漏れがほぼゼロになった。さらに、イベント告知のBotも導入したら、参加率が平均で20%向上したんだ。これ、すごいことだと思わないか?Bot一つで、コミュニティのエンゲージメントが劇的に変わるんだ。
俺は自己破産して、銀行口座に数百円しかなかった時期もあった。その時に、いかに効率よく、いかに最小限のコストでコミュニティを運営していくか、真剣に考えた。その答えの一つが、Discord Botだったんだ。
Discord Botを作るための準備
さて、そろそろ具体的な話に入ろう。Discord Botを作るには、いくつか準備が必要だ。
1. Discord Developers Portalへの登録
まず、Discord Developers Portalにアクセスして、自分のDiscordアカウントでログインする。ここで、新しいアプリケーションを作成するんだ。
- New Applicationをクリック
- アプリケーションの名前を決める(俺は最初、自分の気分で「終焉Bot」とか付けてたな。今はもっとちゃんとした名前だ)
- アプリケーション作成後、左側のメニューから「Bot」を選択。
- Add Botをクリックして、Botアカウントを作成する。
このBotアカウントが、実際にDiscordサーバーで動く本体になる。ここで発行される「TOKEN」は絶対に誰にも教えるなよ。俺は一回、うっかり晒しかけて、ヒヤヒヤした経験がある。これはBotのパスワードみたいなもんだから、流出したら大変なことになる。
2. プログラミング言語の選択
Discord Botは、様々なプログラミング言語で作れる。Python、JavaScript(Node.js)、Go、C#なんかがあるな。
- Python (discord.py):俺のおすすめはこれだ。コードがシンプルで読みやすく、初心者でもとっつきやすい。ライブラリも豊富で、やりたいことの大半はこれで実現できる。
- JavaScript (discord.js):Web開発の経験があるなら、こっちもいい選択肢だ。Node.jsで動くから、非同期処理なんかも得意だぜ。
俺はPythonから入った。理由は単純で、一番情報が多かったからだ。どん底から這い上がろうとしてる時に、新しいことを学ぶコストは極力抑えたかった。だから、まずは学習コストの低いPythonを選んだんだ。
3. 開発環境の準備
プログラミングをするための環境を整える。
- テキストエディタ:VS Codeがおすすめだ。無料だし、機能も豊富で使いやすい。拡張機能もたくさんあるから、自分好みにカスタマイズできる。
- Pythonのインストール:Pythonの公式サイトから最新版をダウンロードしてインストールする。
- discord.pyライブラリのインストール:コマンドプロンプトやターミナルを開いて、
pip install discord.pyと入力して実行する。
これで、Botを作るための最低限の準備は完了だ。
実際にBotを動かしてみよう!
さあ、いよいよコードを書いていくぜ。まずは、簡単な「Hello World」 Botを作ってみよう。
import discord
# BotのTOKENを設定(絶対に公開しない!)
TOKEN = 'YOUR_BOT_TOKEN' # ここにDeveloper Portalで取得したTOKENを入れる
# インテントを設定(Botがサーバーで何をするか定義する)
# discord.Intents.all() は全てのイベントを許可するが、セキュリティ上は必要なものだけ設定するのが望ましい
intents = discord.Intents.default()
intents.message_content = True # メッセージの内容を読み取るためのインテント
# Botのインスタンスを作成
client = discord.Client(intents=intents)
# Botが起動した時に実行されるイベント
@client.event
async def on_ready():
print(f'Logged in as {client.user} (ID: {client.user.id})')
print('------')
# メッセージが送信された時に実行されるイベント
@client.event
async def on_message(message):
# Bot自身のメッセージには反応しないようにする
if message.author == client.user:
return
# 「/hello」と入力されたら「Hello!」と返す
if message.content.startswith('/hello'):
await message.channel.send('Hello!')
# Botを実行
client.run(TOKEN)
このコードを適当なファイル名(例えば my_bot.py)で保存する。
BotをDiscordサーバーに招待する
Developer Portalに戻って、Botのページを開く。
- 左側のメニューから「OAuth2」→「URL Generator」を選択。
- SCOPESで「bot」にチェックを入れる。
- BOT PERMISSIONSで、Botに必要な権限にチェックを入れる(最初は「Administrator」でもいいが、後で最小限の権限に絞るのが安全だ)。
- 生成されたURLをコピーして、ブラウザで開く。
- 招待したいサーバーを選択して、Botをサーバーに招待する。
Botを起動する
保存した my_bot.py があるディレクトリで、コマンドプロンプトやターミナルを開いて、python my_bot.py と入力して実行する。
これで、Botが起動して、Discordサーバーで「/hello」と入力すると「Hello!」と返してくれるはずだ。
どうだ?できたか?初めてBotが動いた時の感動は、マジで忘れられないぞ。俺は「おおお!動いた!俺にもできるじゃん!」って、まるで自己破産から立ち上がった時と同じくらい、小さな自信を取り戻したんだ。
さらに高度なBotへ
このシンプルなBotから、さらに色んな機能を追加していくことができる。
- コマンド機能の拡張:
discord.ext.commandsを使うと、もっと簡単にコマンドを追加できる。 - データベース連携:SQLiteなどの軽量データベースを使って、ユーザーデータや設定を保存する。
- API連携:外部の天気予報APIやニュースAPIと連携して、情報を取得する。
- モデレーション機能:NGワード検出や、スパム対策など。
俺のアジトのBotは、今では新規メンバーへの自動案内、ロールの自動付与、イベントのリマインダー、さらにはメンバーの活動状況を可視化するダッシュボードとの連携までやってくれてる。これらを全部Botが自動でやってくれるおかげで、俺はもっとコミュニティの質を高めるための時間を使えるんだ。
まとめ
Discord Botの作り方、どうだった?難しそうに見えるかもしれないけど、一歩ずつ進めていけば、誰でも作れるようになる。そして、このBotが、お前たちのコミュニティや、ひいては人生を豊かにしてくれる可能性を秘めているんだ。
俺は一度、全てを失った。でも、そこからTikTokというプラットフォームで再起し、アジトというコミュニティを築いた。そのアジトを支えるテクノロジーの一つが、Discord Botだ。
テクノロジーは、俺たちを助けてくれるツールだ。使いこなせば、これまで不可能だと思ってたことも、可能になる。だから、怖がらずに、一歩踏み出してみろ。
もし、何か困ったことや質問があれば、アジトに来てくれ。みんなで知恵を出し合って、一緒に解決していこうぜ。俺はいつだって、お前らの挑戦を応援してるからな!
じゃあな!また会おう!