とけろぐ

群発地震を警告するサービスをPHP+Herokuで作った

はじめに

このサービスは今年の1月にはもうできていたのだが、某コンテストに応募して撃沈したあとトラブルが起きたので今までほったらかしにしていた。しかし4月の熊本地震でもこの前の10月の鳥取地震でも大きな地震の前に小さな地震が頻発していたということを聞き、「やはりこのサービスは必要なのだ」という要らぬ使命感を感じて一部を直してHerokuにあげた。

「群発地震警告サービス」の概要

大地震や火山活動の活発化の前に起きることのある小さな地震の頻発(群発地震)を検知してTwitterで知らせるサービスである。

地震感知情報API(P2P地震情報)から直近5日間の地震情報を取得し地震が頻発していたらTwitterAPIからツイートする。

ツイートするプログラムは定期的に自動で動くようにしている。

技術的なメモ

・今までは7pz.coという海外の無料レンタルサーバーを使っていたが、前から気になっていたHerokuに変えた。1日に何回かのプログラムを動かすとき以外は眠っていても大丈夫なので無料プランで十分だ。

・たくさんのブログを見たが、結局のところ最も役に立ったのはGithubとHerokuの公式ドキュメントだった。というのも特にHerokuは開発が活発で頻繁に仕様が変わるので少しでも古い情報は使えないのだ。

・TwitterのAPIはtwitteroauthというライブラリを使うと簡単に扱える。

・HerokuのDynoが1日に1度再起動する(らしい)ことを利用して1日に1度だけツイートさせている。具体的にはツイートするプログラムを動かす→ファイル書き込み→ファイルの書き込みがリセットされている(1日に1度のDyno再起動が行われたということ)→またプログラムを動かす?というようにしている。

・・・本当にこのように動かすことができているのかはよく分からない。

・Heroku版cronのHeroku scheduler(アドオン)はクレジットカードの登録が必須だ。しかし私はまだ16歳なのでクレジットカードを持っていない。16歳でも作れるvisaデビットカードを使うという手もあるがそこまでするのも面倒。

だからHeroku schedulerの代わりにcron-job.orgを使った。

とりあえずはこんな感じで

追記

また正常に動かなくなっているようである。もう知らん。