Webサイトの内容を自動チェックしてIFTTTでFacebookに投稿する

公開

2015年7月14日から「JALハッピージャーニーエクスプレス」が国内線に就航しました。特別塗装機なので広島空港に来た際は写真を取りに行きたいところです。幸いJALの場合は翌日の就航予定がWebサイトに掲載されるのでこれを毎日チェックすれば良いのですが、それを自動化できないかなと考えました。

まず環境としては、このブログをホストしているVPSがあり、定時にコマンドを走らせることが可能です。就航予定のページは必要な情報しかない単純な内容なので、まずcurlでページを取得してgrepすれば良いかと考えました。そこで試してみたのですが上手くいかない...。ファイルを見てみると、エンコードがShift_JISでした。そこでnkfを用いてエンコードをUTF-8にした後にgrepするようにしました。

その後はTwitterかFacebookに投稿すれば良いのですが、Facebookに広島空港の撮影メンバーが揃っているのでFacebookに投稿することに。最初fbcmdを試したのですが、上手くいかないし、R.I.Pとか書いてある。IFTTTで何かできないかと探ったところ、トリガーにMailがあったのでIFTTTにメールを送信することにしました。mailコマンドを打つだけなので簡単です。

以上の手順で、翌日広島空港に就航予定がある場合は、Facebookに「【自動投稿】明日広島空港にJALハッピージャーニーエクスプレスが来るよ! http://www.jal.co.jp/dom/disney/flight.html」と投稿することができるようになりました。
作成したIFTTTのレシピ。ログインしたメールアドレスからtrigger@recipe.ifttt.comにメールを送信するとレシピが動作する。

本当はHTMLをパースして更新日時を確認したり、便名と時刻まで取り出せたりすると便利そうですが、それは今後の課題ということで。PerlかPHPを使う感じかな?

最後に、JALのサイトの規約も確認しておきました。個人的に又は家庭内その他これに準ずる限られた範囲内において使用することが私的利用の範疇のようですが、Facebookの投稿は限られた範囲...友達までしか見えないようにしているので、ぎりぎり大丈夫かな。(でも友達は多いのですが。)まずいようでしたら自分にだけメール通知するように変更します。ただ、その後同じ内容を手動でFacebookに書くことになるのですが...。