Cloud Functionsでツむヌトを自動化する

公開日: 2021-09-01

曎新日: 2021-09-04

  • 日蚘
  • 個人開発
  • Firebase
  • Vite

やるこずになった経緯に぀いおは過去蚘事をご芧ください。

サヌビスの運甚をい぀たで続けるかはただ未定ですが、圓分の間は続けたす。そこで問題になるのは公匏Twitterアカりントの運甚です。公匏アカりントでの投皿の共有がないず閲芧数がなかなか䌞びないため、piguに投皿するメリットが匱くなっおしたいたす。そのため、Twitterでの投皿の共有は䞍可欠です。しかし、珟圚は党お手動でツむヌトしいお、投皿のURLを共有するたでにボタンを䜕回も抌さないずいけないため、正盎かなり面倒です。他にも様々な問題はありたすが、たずはこの問題を解決するためのシステムを構築する予定です。


できたもの

FirebaseのCloud Functionsを利甚しお「ツむヌトの予玄」ず「自動ツむヌト」を行う関数を定期実行させおいたす。管理画面ではツむヌトするテキストの線集、予玄の取り消しやブラックリストの線集などを行うこずができたす今ではTwitterで共有する必芁性がなくなった「過去のお知らせ情報」などの投皿を予玄可胜な投皿リストから陀倖するこずが䞻な目的です。


予玄したツむヌトなどのデヌタは党おpiguず同じデヌタベヌスCloud Firestoreで管理しおいたす。「自動ツむヌト」する関数内でFirestoreから予玄リストを取埗し、Tweet Atフィヌルドの日付が珟圚の時刻よりも前であるものをツむヌトするずいう流れになっおいたす。ちなみに、Twitter Ads APIを䜿えばWeb版Twitterの予玄ツむヌト機胜を利甚できるらしいですが、今回は申請をしおから利甚できるようになるたで埅おなかったので利甚したせんでした。

技術に関する話

Cloud Functions - Pub/Subトリガヌ

これたでに動的OGPの生成httpリク゚ストや怜玢甚むンデックスの曎新firestoreトリガヌにCloud Functionsを利甚した経隓がありたしたが、関数を定期実行させる方法はわかりたせんでした。Cloud FunctionsのドキュメントによるずGCPのPub/SubずCloud Schedulerを利甚しお実珟可胜ずのこずだったので利甚したした。

凊理の流れずしおはCloud Schedulerによっおむベントがトリガヌされ、Pub/Subを経由しおCloud Functionsの関数が実行されるようです。これだけ聞くず耇雑で倧倉そうですが、実際はCloud Functions偎でトリガヌ方法を倉曎するだけなので、コヌドを数行曞き倉えるだけで枈みたした。時間の蚭定も想定しおいたより柔軟に察応できたした。䟋えば「10時〜23時の時間垯に1時間毎にむベントを実行する」みたいな感じです知っおる方からすれば圓たり前かもしれたせん。今埌たた䜕か自動化したいこずがあれば利甚したいです。

次䞖代フロント゚ンドツヌル - Vite

今回はビルドツヌルにViteを䜿甚しおみたした。最近たで「バむト」ず呌んでたのですが「ノィヌト」が正しいようです。Webpackずの倧きな違いはサヌバヌの起動や曎新に時間がかかっおしたう原因ずなる「バンドル」ずいう工皋をES Modulesを掻甚するこずで効率的に行うこずができる点です。開発時のリロヌドが高速で、開発䜓隓がずおも良かったです。この蟺の仕組みに぀いおは公匏ドキュメントの他にNative ESM時代ずはなにかずいうZenn蚘事が参考になるず思いたす。

感想

特に倧きな問題なく無事に実装するこずができお良かったです。これで毎日ボタンをポチポチせずに枈みたす

yona

yona

琉球倧孊の理孊郚に所属しおいる倧孊3幎生です。 趣味ず仕事でWebアプリ開発やシステム開発をしおいたす。