IFTTTをWindowsのCLIで使用する

IFTTTをWindowsCLIで使用する

サービス間の連動をサポートしてくれるIFTTTWindowsCLI上からたたいてみようという話です。

ifttt.com

IFTTT - Wikipedia

今回は自分の使う【Maker Channel】をトリガとするものをPowershellから起動するものになります。

公式のサイトでMaker Channelの設定ページをみれば、curlをつかったサンプルも載ってます。

f:id:ueponx:20160504174732j:plain

以下のような感じです。

# データがない場合
curl -X POST https://maker.ifttt.com/trigger/{event}/with/key/{YourKey}

# データがある場合
curl -X POST https://maker.ifttt.com/trigger/{event}/with/key/{YourKey} -d value1=value1&value2=value2&value3=value3

{event}、{YourKey}の部分は適切なものに読み替えて下さい。 Windowsにも純粋なcurlがあれば、こんなエントリーはいらないのですが…仕方ありません。

WindowsPowershellにも実はcurlコマンドがあります。厳密にいうとInvoke-WebRequestのaliasとなっています。 そのため、Invoke-WebRequestを使えばデフォルト機能で実現ができます。ただ純粋なcurlとはスイッチ設定が違うので注意がいるということです。

Maker ChannelではhttpでもhttpsでもGETでもPOSTでも使用可能の様です。以下のようにやればトリガーを起動できます。

# https-POST版
PS C:\> curl -Method POST -Uri "https://maker.ifttt.com/trigger/{event}/with/key/{YourKey}" -Body "value1=value1&value2=value2&value3=value3&format=json"

# http-POST版
PS C:\> curl -Method POST -Uri "http://maker.ifttt.com/trigger/{event}/with/key/{YourKey}" -Body "value1=value1&value2=value2&value3=value3&format=json"

# http-GET版
PS C:\> curl -Method GET -Uri "http://maker.ifttt.com/trigger/{event}/with/key/{YourKey}?value1=value1&value2=value2&value3=value3"

見てみればそれほどのわかりにくさはないのかもしれません。ポイントはPOSTの場合のbodyの末尾にある&format=jsonでしょうか。これによってcontent-bodyのデータフォーマットをjsonにすることができます。

Windows10 Previewでもbashの起動ができたという話もきいているのでcurlがその上で動作できるのであれば、そのうちいらなくなる知識なのかもしれません。