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の一部がご覧いただけます!
舘