Webサービス同士を連携させるサービスIFTTTを、PHPスクリプトのcronジョブとして使ってみました。
仕組みとしては、一定時間ごとにPHPスクリプトのURLをDropboxに保存させるように設定することで、Dropboxに定期アクセスさせるというものです。
ちょっと不完全ですが、案外普通に使う事ができます。
不完全な点は、Dropboxの仕様によるものですが、スクリプトに1度だけじゃなく2度アクセスする場合があること。なので、例えばTwitterのbotだと1度に2回つぶやいたりします。
毎回というわけではありませんし、暴走して2回以上作動するといったことは無いのでそれほど問題はありませんが、気になる人や重いスクリプトを作動させる場合は、普通にcronを使った方がいいでしょうね。
そもそも、cronを動かす必要があるようなユーザーは、そのスクリプトを作動させるレンタルサーバーなり自宅サーバーを使っているハズなので、そのサーバーでcronジョブを登録すればいいだけっていう話しで、わざわざこれを使う必要があるのかというと、ちょっと微妙なところですが、レンタルサーバーのcronジョブの項目がいっぱいだとかそういう場合には使えると思います。
IFTTTをcronジョブとして使う
まず、Create Recipeで「Date & Time」を指定。
1時間毎に作動させる場合は「Every hour at」を指定。
1日に1回だけなら「Every day at」。週や月でも指定できます。
動作させる時刻は、00 / 15 / 30 / 45 分で指定できます。
スクリプトを動作させるサーバーの負荷なども考えて、適切に指定して下さい。
30分毎に動作させたい場合は、同様のレシピを2つ作り、00分と30分といった具合に30分間隔で時間指定すると可能です。
次に、Dropboxを指定して「Add file from URL」 を追加。
File URLにスクリプトのURLを、File nameはキャッシュファイルの名前なので適当に(空欄でもかまいません)。
folder pathは、キャッシュファイルを保存するフォルダーです。
他のフォルダと差別化するために「IFTTT_cron」等として、その配下にスクリプト別にサブフォルダを指定します。こうするとcron動作の度に生成されるキャッシュファイルが混在しません。
そのままだとキャッシュファイルがローカルに同期されるので、クライアントアプリの設定から選択型同期でIFTTT_cronのチェックを外しておきます。
phpスクリプトの場合、キャッシュファイルはhtmlで保存されます。
アクションを停止させるときは、電源アイコンをクリックします。
(IFTTTとDropboxのリンクを解除すると、登録したアクションが全て削除されてしまうので注意。)
- Source Barattalo