Open4

DenoでDiscord Bot

こまもか🦊こまもか🦊

動機

  • Discord Botはインフラが不安定だと使い勝手が悪くなる
  • Discord BotをDeno Deployすれば快適な開発とデプロイが出来るのでは

先行研究

テンプレートになりそうなサンプルはある
https://github.com/discordeno/discordeno/tree/main/examples
しかしこれはDeno Deployでは使えない書き込み権限を使っていたりと、Deno Deploy前提で使うには難がある。

やってること

https://dev.to/eternalllight/making-a-discord-bot-with-deno-and-discordeno-3mhm

こういう記事もあるがスラッシュコマンドではなさそうなので微妙にユースケースが合わず参考にするのを断念。

https://qiita.com/yamayama250/items/49664e686782dd486a74

そこでこの記事を参考にDeno Deploy前提のミニマルなサンプルを作っている。

こまもか🦊こまもか🦊

https://discordeno.js.org/docs/examples/deno

このページに載ってるサンプルコードの動作を確認できた。ただ、環境変数の取得部分が謎なので、Deno.env.get()で書き直した。

このサンプルコードはDiscordenoの最新版を使っているのでこれをベースにした方が良さそう。

こまもか🦊こまもか🦊

https://twitter.com/Comamoca_/status/1654940282344079360?s=20

段々問題の全容が見えてきた

  • discordenoのサンプル側の謎仕様
  • Deno Deployの仕様

この2つが噛み合ってしまったせいで、サンプルがデプロイ出来ない問題が起こっているらしい。

考えられる解決策としては以下の2つがある

  • スクリプトの違ったロード方法を考える
    サンプルが全てこの方法らしいのでかなり厳しそう

  • 他のデプロイ先を検討する
    このスクラップのテーマから離れてしまうので一旦保留

という事で1つめの違ったロード方法を考えてみようと思う。