IFTTTをWindowsのCLIで使用する
サービス間の連動をサポートしてくれるIFTTTをWindowsのCLI上からたたいてみようという話です。
今回は自分の使う【Maker Channel】をトリガとするものをPowershellから起動するものになります。
公式のサイトでMaker Channelの設定ページをみれば、curl
をつかったサンプルも載ってます。
以下のような感じです。
# データがない場合 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があれば、こんなエントリーはいらないのですが…仕方ありません。
WindowsのPowershellにも実は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がその上で動作できるのであれば、そのうちいらなくなる知識なのかもしれません。