Open6

Discord botを作りながらCloudflare Workersに入門する

高玉 広和高玉 広和

最近、Discordを使う機会が増えてきた。そこで、DIscord botを作ることで、Discordとそのエコシステムについて学んでみる。動くソフトウェアを作りながらプラットフォームについて理解を深められるのは、ソフトウェア技術者の特権だと思う。

軽く調べたところ、前々から気になっていたCloudeflare Workersでbotが作れるようなので、触ってみる。

最終的には、生成AIを使ってクイズを作るbotにしようと思う。Workersは実行時間の制約が非常に厳しく、生成AIの呼び出しが間に合わないのが目に見えているんだけど、そこをどうクリアするかが課題になる。

高玉 広和高玉 広和

そもそものcloudflare workersとはで検索。

  • 入門Cloudflare Workers
    • 記事とは違って、workers.devのサブドメインは、一度 Workers を作ってからでないと変更できない。変更後のサブドメインは、他の人が未取得でないといけない。
    • 制限はCPUが動いている時間なので、sleepや他のURLにfetchした後の待ち時間はカウントされない。
高玉 広和高玉 広和

得意技のGoogle Apps Scriptが使えるかな?と思って、discord http interactions google apps scriptで検索。

高玉 広和高玉 広和

https://discord.com/developers/docs/tutorials/hosting-on-cloudflare-workers をやってみる。

git clone https://github.com/discord/cloudflare-sample-app
mv cloudflare-sample-app awwbot
cd awwbot
npm install
npx wrangler secret put DISCORD_TOKEN
npx wrangler secret put DISCORD_PUBLIC_KEY
npx wrangler secret put DISCORD_APPLICATION_ID
npx wrangler secret put DISCORD_TEST_GUILD_ID
mv example.dev.vars .dev.vars
vi .dev.vars
npm run register
npm run publish

Guild Install URLを踏んでbotをサーバーに追加。
/awwwwでかわいい画像を表示。
/inviteでbotを追加するURLを表示。