IFTTT Webhookを実行するperlスクリプトです。追加モジュールは必要ありませんが、curlが必要です。
WEBHOOK_KEY に自分のWebHook Keyを(Webhook KeyはWebHook画面の「Documentation」から確認できます)、 COMMANDS に サブコマンドとイベントを設定します。イベントは複数設定でき、連続して実行されます。
#!/usr/bin/perl | |
use strict; | |
use warnings; | |
use feature 'say'; | |
# -------------------------- | |
# WebHook Key | |
our $WEBHOOK_KEY='aaaaaaaaaaaaaaaaaaaaaa'; | |
# Events | |
our @COMMANDS=( | |
{ cmd => 'acon', events => ['AC_ON']}, | |
{ cmd => 'acoff', events => ['AC_OFF']}, | |
{ cmd => 'lampon', events => ['LAMP1_ON']}, | |
{ cmd => 'lampff', events => ['LAMP1_OFF']}, | |
{ cmd => 'tvpwr', events => ['TV_PWR']}, | |
{ cmd => 'plgon', events => ['PLUG1_ON']}, | |
{ cmd => 'plgoff', events => ['PLUG1_OFF']}, | |
{ cmd => 'on', events => ['AC_ON', 'LAMP1_ON', 'PLUG1_ON']}, | |
{ cmd => 'off', events => ['AC_OFF','LAMP1_OFF', 'PLUG1_OFF']}, | |
); | |
# curl | |
our $CURL_BIN='curl'; | |
# -------------------------- | |
sub usage { | |
say "[USAGE] $0 [cmd]"; | |
say "[COMMAND] events"; | |
foreach(@COMMANDS) { | |
printf(" %-10s %s\n",$_->{cmd},join(', ',@{$_->{events}})); | |
} | |
exit(1); | |
} | |
usage if($#ARGV == -1); | |
my $events=[]; | |
foreach(@COMMANDS) { | |
$events=$_->{events} if ($_->{cmd} eq $ARGV[0]); | |
} | |
usage if($#{$events} == -1); | |
foreach(@{$events}) { | |
my @cmd=( | |
$CURL_BIN, | |
'-X', | |
'POST', | |
'https://maker.ifttt.com/trigger/'.$_.'/with/key/'.$WEBHOOK_KEY, | |
); | |
# say join(' ',@cmd); | |
system(@cmd) == 0 or die "Execute failed: $!"; | |
say ""; | |
sleep(1); | |
} |