どうも、CHASUKEです。
本記事では、PythonスクリプトからWebhookでIFTTTトリガーを呼び出す方法をご紹介します。
Webhookとは?
アプリでイベントが実行された時に外部サービスにHTTPで通知する仕組みのこと。
今回でいえば「アプリ(Python)からのイベントを外部サービス(IFTTT)にHTTPで通知する」といった感じ。
本記事では、ラズパイに最初からインストールされているPythonを使って実現してます。Pythonは、他のプログラム言語と違いコンパイル不要で構文も簡単なので、読みやすく書きやすいのが特徴です。すぐ試せてすぐ動かせるので個人的に好きな言語です。
「PythonスクリプトからIFTTTを呼び出したい」「スマートホームを加速させたい」と思っている人の参考になれば幸いです!
【追記】IFTTTの画面イメージは細かいところが変更されてますが、困らないレベルなので適宜読み替えてください。

PythonスクリプトからIFTTT連携方法
WebhookでIFTTTを呼び出した後、わかりやすいアクションが良かったので、「LINEメッセージを飛ばす」を例に紹介してます。
▼動作イメージは、こんな感じ。
Python(ラズパイ)→ IFTTT経由 →LINE
▼作成手順は以下の通り。
- IFTTTアプレット作成
- IFTTT呼出先の確認
- Pythonスクリプト作成
- Pythonスクリプト実行
IFTTTアプレット作成
IFTTT「https://ifttt.com/discover」にてNew Appletを作成していきます。
IFTTTは、ご存知の通り、「もし、〇〇ならば、△△する」で自動化できる便利サービス。
先に、『トリガー:〇〇』を作成してきます。
▼Webhooksチャンネルを選択
▼Webhooksのトリガーを選びます。
▼HTTPアクセスする際のイベント名を指定します。
▼続いて、『アクション:△△』を設定します。
▼LINEチャンネルを選びます。(※初回はログインが必要です。)
▼LINEチャンネルのアクションには選択肢が1つしかありません。
ここでは、LINE Notifyから指定の通知を受ける設定をします。また、メッセージ内容は自由ですが、シンプルにアプリから連携された「Value1」「Value2」「Value3」を表示するだけにしてみました。
固定文字を送信する場合は、送信内容を「Message」に入力します
▼適当にアプレットのタイトルを決めて、完了です。
IFTTT呼出先の確認
さきほど作ったIFTTTアプレットにWebhook呼び出しするためのURLを確認します。
▼右上の「Services」を選択
▼ServicesタブからWebhooksチャンネルを指定します。
▼右上のSettingsを選択
▼ここに表示されるURLをブラウザに入力し、アクセスします。
▼こんな画面が表示されます。
この赤枠部分のURLがIFTTTのWebhook呼ぶためのURLになります。
先ほどのWebhooksトリガー設定で「Event Name」に指定した値(※今回ならline_event)を入れてURLが完成する。URLには一意に割り振られるIFTTTキーが必要なのでメモしておきましょう。
このアクセスでは、同時に3つ(Value1〜3)まで値を飛ばすことができます。
Pythonスクリプト作成
いよいよPython側スクリプトを作成します。(※Python3を利用)
▼ちなみに僕のPython環境はこんな感じ。
$ python3 -V Python 3.7.3 $ pip3 -V pip 20.3.1 from /home/pi/.local/lib/python3.7/site-packages/pip (python 3.7)
▼作成したPythonスクリプトがこちら。
ファイル名:ifttt_demo.py
import requests # IFTTT_Webhook def ifttt_webhook(eventid): payload = {"value1": "Internet", "value2": "Of", "value3": "Things" } url = "https://maker.ifttt.com/trigger/" + eventid + "/with/key/{IFTTTキー入力}" response = requests.post(url, data=payload) # ここからスタート if __name__ == '__main__': print ("IFTTT連携開始") # IFTTT_Webhook ifttt_webhook("line_event") print ("IFTTT連携終了")
上のサンプルコードは、Value1からValue3を「Internet, Of, Things」という文字(適当w)で連係します。もし、連携するValue値がない場合、「def ifttt_webhook」のところが下記コードになります。
def ifttt_webhook(eventid): url = "https://maker.ifttt.com/trigger/" + eventid + "/with/key/[IFTTTキー入力]" response = requests.post(url)
Pythonスクリプト作成
さっそく作ったPythonスクリプトを実行します。
HTTPアクセスが便利になる外部ライブラリ『requests』を利用しているため、事前にインストールしておかないと、実行時にエラーとなる。
$ pip3 install requests
▼実行した結果がこちら。
$ python3 ifttt_demo.py IFTTT連携開始 IFTTT連携終了
LINEをチェックすると、「LINE Notify」から指定した通知がきてますねー。

最後に
こんな感じで、PythonスクリプトからIFTTTを実行できました。
今回は、単純なLINE通知をアクションとしましたが、オリジナルのスクリプトに組み込めば、便利な通知機能として役立ちます。
それではまた。