IFTTTでトリガー発動とアクション実行の間に時間(ディレイ)を空ける方法です。
トリガーとアクションの間に時間を空ける
IFTTTでは基本的にトリガーが発動するとすぐにアクションが実行されます。
通常ではアクションの実行のタイミングをコントロールすることはできません。
しかし次の方法を使えば、トリガー発動とアクション実行の間にタイムラグ(ディレイ)を設定することができます。
これはIFTTTのサイト(英語)にも載っている方法です。
方法
トリガーとアクションの間にディレイを設定するには、アプレットを2つ使います。
Standardプランの人でもできますが、アプレットを2つ作ると他に作れるアプレットが1つになってしまうので、Proプランをおすすめします。
まず事前に、下記の Webhook サービスから Documentation を押して、自分の Webhooks Key をメモしておきます。
ひとつめのアプレット
まずは普通にトリガーを設定。
アクションで Webhook > Make a web request を選びます。
URLにこのように入力します。
パラメータは下記のように置き換えます。
- {EVENT NAME}:イベント名。次のアプレットで使用するので適当な名前をつけておきます。
- {DELAY IN MINUTES} :ディレイタイムを分で設定します。少数も可。最大35791分(=約25日)まで設定できます。
- {WEBHOOKS KEY} :先ほどメモしておいた Webhooks key を入力します。
次のアプレットに値を引き渡す
Bodyに次のように入力します。
Value1=<<<{{Ingredient1}}>>>&Value2=<<<{{Ingredient2}}>>>&Value3=<<<{{Ingredient3}}>>>
{{Ingredient1}} 〜 {{Ingredient3}} のところに設定した値を次のアプレットで使用することができます。
下の Add ingredientボタンからトリガーの変数を入力することもできるし、tと入れればディレイ時間を数字で引き渡すこともできます。
(Add ingredientボタンはアプリでは表示されませんが、トリガーの変数名を{{ }}で括れば手入力でもOKです。)
値を引き渡す必要がないならBodyは省略できます。
また3つ必要ないときは2つめ以降の&以下を省略できます。
ふたつめのアプレット
トリガーで Webhooks > Receive a web request を選び、Event Name にひとつめのアプレットで設定したイベント名を入力します。
アクションでは通常どおり実行したいアクションを設定します。
ここで先ほど Body で引き渡した値を使用することもできます。
欠点
この方法ではtで設定した一定の時間しかディレイを置くことができないのが欠点。
でも、IFTTT Pro でフィルターを使えば値を変更することはできるかも。
このへんはちょっと高度になってきます。
実例
実例としてアプレットを作りました。
その紹介記事です。