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

ConoHaAdvent Calendar 2024

Day 22

ConoHa VPSを使って簡単なDiscord BOTを作ろう

Last updated at Posted at 2024-12-22

はじめに

この記事は「ConoHa Advent Calendar 2024」の第22日目の記事です.ここ数年参加させてもらっているのですが,調べると昨年も一昨年もその前の年も22日担当だったようでもはや縁を通り越している気がします笑
今回は,ConoHa VPSを使って簡単なDiscord BOTを作ろうというお話になります.最近は,Discordの利用者もぐっと増えてきたように思います.簡単ではありますが,Discord BOTを作る過程をご紹介しようと思います.

Discord側にBOTとして登録しよう

まずはじめに,自分が管理者のDiscordサーバーを立てておいてください.すでに立ててある方はそれを使ってもらっても構いません.

DiscordサーバーはDiscordの画面から + ボタンを押して, オリジナルの作成 から簡単に立てられます.
image.png

BOTアカウントを作成します

Discord Developer Portalにアクセスして,ログインします.

ログインしたら,右上の New Application をクリックします.
スクリーンショット 2024-12-22 184645.png

別のウインドウが開くので好きなBOT名を入力します.今回は,「conoha-bot」としました.
スクリーンショット 2024-12-22 184803.png

左のメニューから Bot を選択して Bot 画面を表示します.
スクリーンショット 2024-12-22 184948.png

Privileged Gateway Intentsの設定

少し画面を下げて, Privileged Gateway Intents の3つのスイッチをONにします.
スクリーンショット 2024-12-22 185119.png

TOKENの取得

少しもどって, TOKEN を発行します.この画面ではすでに一度発行してしまったので, Copy ボタンがありますが,初めての場合は, Reset Token ボタンのみかと思いますので押してください. Reset Bot's Token? と聞かれますので,Yesを押して進めてください.2段階認証を設定している方は認証コードの入力を求められる場合はあります.そこまで進めたら,Tokenが発行されますので,メモしておいてください.後で使用します.
スクリーンショット 2024-12-22 190017.png

Discordサーバへ招待する準備

次に,Discordサーバーへ招待する準備を行います.Discord Developer Portalの左のメニューから OAuth2 を選択します.
image.png

少し進めて, OAuth2 URL Generator のチェックボックスのリストで bot のみのチェックを入れます.
スクリーンショット 2024-12-22 185302.png

チェックを入れると,下に Bot Permissions が出てきますので,今回は, View Channels と Send Messages のみチェックを入れます.
スクリーンショット 2024-12-22 185726.png

ここまで進めたら,もう少し下に,Integration Typeは Guild Install になっていることを確認して, Generated URL に表示されているURLをコピーして,そのURLに接続します.

URLに接続すると自分か管理するサーバーのリストが出てきますので,導入したいサーバを選択して はい を押して進めます.
スクリーンショット 2024-12-22 185832.png

その後,権限の確認が表示されますので確認して認証を押します.押した後には,キャプチャによる認証が入るかもしれませんがそれは指示通りにクリアしてください.
image.png

うまく追加に成功するとサーバーに conoha-bot がユーザーとして登録されます.
スクリーンショット 2024-12-22 190114.png

ここまでで,Discord側の設定は完了です.

ConoHa VPS側でBOTのプログラミングを構築する

今回の仕様

今回は,ConoHa VPS Ver.3.0 を使用しました.
・Ubuntu 24.04 1GBプラン
で構築しました.

構築したVPSにSSHで接続できるようにしておきます.

VPSに接続するときに少し手こずったのですが,接続するVPSのセキュリティグループでSSHに接続できるセキュリティグループを選択しておいてください.今回は, IPv4v6-SSH にしました.

必要なパッケージをインストールする

今回は,Pythonを使って,discord.pyというモジュールを使用します.
必要なモジュールをインストールしていきます.

$ sudo apt update
$ sudo apt install python3-pip

ここで,次に pip install discord.py と入れたいところなのですが,Ubuntu 24.04では,セキュリティが強化され実行できないようになっています.一度実行すると分かるのですが,externally-managed-environmentとエラーが発生します.エラーの回避方法や正規の方法は他の文献に譲るとして,今回は簡単に進めたいので,回避するオプション --break-system-packages を追加します.

$ pip install --break-system-packages discord.py

これでインストールができるようになったかと思います.これでパッケージのインストールは完了です.

BOTのプログラミングをする

今回は,特定のコマンドを入力したら返事が返ってくるBOTを作ろうと思います.このはちゃん清楚可愛いBOTを作ります.
Pythonプログラムを実行したいディレクトリでコードを作成します.今回は, conoha.py として作成しました.

# discord.pyを読み込む
import discord

# 控えておいた自分のBOTのTOKENに置き換える
TOKEN = 'MTMyMDMyNzA00000NjIzODUwNA.G1dH4_.j5fTD1Q_GH3DQ3500000-Yb8t5Nzx9HhzqtMtk'

# 接続に必要なオブジェクトを生成
client = discord.Client(intents=discord.Intents.all())

# BOT起動時に動作する処理
@client.event
async def on_ready():
    print('起動しました')

# メッセージを受信したときに動作する処理
@client.event
async def on_message(message):
 
 # "/conoha"と発言したら"清楚可愛い"が返ってくる処理
 if message.content == '/conoha':
  await message.channel.send('清楚可愛い')

# BOTの起動とDiscordサーバーへの接続
client.run(TOKEN)

ここまで入力できたら保存してください.

BOTを起動する

次のコマンドを入力してBOTを起動します.今回は,ファイル名を conoha.pyとしています.

$ python3 conoha.py

問題なく起動できたらコンソールに 起動しました と表示されます

DiscordのサーバーでもBOTがオンラインに変わったのが確認できます.もしオンラインになっていない場合は,何度かBOTの起動をし直してみてください.
image.png

BOTと会話する

さて,作ったBOTと会話してみましょう.

Discordのチャット欄に /conoha と入れます.
image.png

そうすると,BOTが ”清楚可愛い” と返してくれます.
image.png

これで,このはちゃん清楚可愛いBOTの完成です!

おまけ

今回は,Discordのチャット欄に /conoha と入れたら, ”清楚可愛い” と変えてしてくれるように作りましたが,プログラムの

 if message.content == '/conoha':
  await message.channel.send('清楚可愛い')

を追加したり,書き換えたりすると他の応答もできるようになるので試してみてください.

また,BOTは完成しましたが,このままだと,SSHのコンソールを落としたりするとBOTが止まってしまいます.1つは,$ python3 conoha.py & と入れる方法もありますが,これでもしばらく経つと落ちてしまいますので,cronなどで定期的に起こしてもらうか,システムに追加するかする必要があります.

さいごに

ざっと駆け足になってしまいましたが,ConoHa VPSを使って簡単なDiscord BOTを作ろうをお送りしました.毎年この時期になると1年間なにやったかなぁ~って思い出すことが増えてます笑 ConoHaとの付き合いも年々長くなりますね! 私が初めて使ったときは,まだHDDのVPSでした.そんな昔のことを思い出しながらこれからもいろいろチャレンジしていこうと思います.また,来年のAdvent Calendarでお会いするかもしれません笑

最後に,

このはちゃん,清楚可愛い!

と言って終わっておきましょう~

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