BLOG

discordのBot開発しました

こんにちは。インターン生の舘です。

先日、PACkageのインターン生で唯一(多分)のシステム周りをやっている自分にdiscordについて相談が来ました。

 

 

それは、PACkageサーバーからイベントサーバーにメッセージを転送するというもの。

 

最初は「コミュニティー化しちゃえばいいやー」なんて考えていましたが、話を聞くとどうやらスレッドのメッセージらしい...
これはいけない...

 

コミュニティー化しても意味がないというわけでBot開発をすることになったのですが、これがまた大変。

 

 

 

大変な理由その1                    

 

discord Bot制作の簡単な方法「Webhook」
だが、今回はスレッド。Webhookはチャンネルのみ。
あきらめ...

Webhook:アプリケーションと他のアプリケーションをつなぐもの

 

 

 

大変な理由その2                    

 

「スレッドを使うなら、こいつを使うしかない!」ということで今回は初めて使いました。「discord.js v13」
以前使おうとしたとき(イベントサーバーのロール振り分けBot)、エラー多発で断念。
今回は、スレッドのメッセージを取得する必要があるので何としても使わなければいけない...
エラー出ないで...

discord.js:JavaScriptでdiscordのbot開発する際に使用するライブラリ

 

ところで、今回どんなBot作るの?ってことですが、流れ的にはこう。

Google Apps Script(GAS):Googleによって開発されたスクリプトプラットフォーム
Glitch:Node.jsを使ったウェブアプリを作成・公開できるサービス
Node.js:サーバーサイドで動くJavaScript環境

 

取り合えず、Glitchにてプロジェクトを作成。
その後、必要なライブラリを入れて、コードを書いて...
discord.js v13 は v12 と記述方法が違ったりと大変。書きながら勉強。

 

実行!

 

ちょくちょくエラーはあったものの何とか動いた。ヤッター

 

が、ここで恐れていたことが起きる。

 

 

 

大変な理由その3                    

 

そう。解決できない謎エラーが出たのだ。
とりあえず、ネット記事を頼りにいろいろ試す。
これがまた面白い。記事には「こうしろ」ってかいてあるのに別記事では非推奨。頭爆発しそうになるよね...

 

試しに試しまくる。

 

それでも解決できないので、先輩に助けを求める。

が、ここで先輩に提示された資料がすでに試したネットの記事。
先輩もこれ以上無理だと。
これはいけない...

 

Botはあきらめるしかないのかと思ったその時、以前使おうとしたことを思い出す。

 

 

 

問題解決から完成まで                    

 

結論から言うと、「Glitchが対応していないNode.jsのバージョンを使用していた」ということ。
以前は、discord.js v13に必要なNode v16.6以上はGlitchが対応してなかったので使えなかった。

今回は、ライブラリをインストールする際、Nodeの最新版があったので何も考えずインストールしたのが原因だった。
これはいけない...

 

思いだしたことを頼りに対応しているNodeバージョンを確認してライブラリを入れなおしたら無事動いた!!ヤッター

完成したものはこちら

 

これにてBot開発は無事完了。これからもアップデートを繰り返してよりよいBotにしていけたらと思います。

 

ところで、「『PACkageサーバーからイベントサーバーにメッセージを転送する』とあったけど、イベントサーバーのどこで見れるの?」って疑問があるかと思います。

 

その答えは、ズバリ!

PACkageアカデミー加入者特典で見ることがチャンネルでPACkageの一部がご覧いただけます!