TECH ラズパイ

Pythonを使って『IFTTT(Webhook)』を呼び出す方法

どうも、CHASUKEです。

本記事では、PythonスクリプトからWebhookでIFTTTトリガーを呼び出す方法をご紹介します。

Webhookとは?

アプリでイベントが実行された時に外部サービスにHTTPで通知する仕組みのこと。

今回でいえば「アプリ(Python)からのイベントを外部サービス(IFTTT)にHTTPで通知する」といった感じ。

本記事では、ラズパイに最初からインストールされているPythonを使って実現してます。Pythonは、他のプログラム言語と違いコンパイル不要で構文も簡単なので、読みやすく書きやすいのが特徴です。すぐ試せてすぐ動かせるので個人的に好きな言語です。

PythonスクリプトからIFTTTを呼び出したい」「スマートホームを加速させたい」と思っている人の参考になれば幸いです!

【追記】IFTTTの画面イメージは細かいところが変更されてますが、困らないレベルなので適宜読み替えてください。

CHASUKE
それではやっていきます。

PythonスクリプトからIFTTT連携方法

WebhookでIFTTTを呼び出した後、わかりやすいアクションが良かったので、「LINEメッセージを飛ばす」を例に紹介してます。

▼動作イメージは、こんな感じ。

Python(ラズパイ)→ IFTTT経由 →LINE

 

▼作成手順は以下の通り。

  1. IFTTTアプレット作成
  2. IFTTT呼出先の確認
  3. Pythonスクリプト作成
  4. 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」から指定した通知がきてますねー。

CHASUKE
3回実行やったので、何個もきてます。

最後に

こんな感じで、PythonスクリプトからIFTTTを実行できました。

今回は、単純なLINE通知をアクションとしましたが、オリジナルのスクリプトに組み込めば、便利な通知機能として役立ちます

それではまた。

Amazonでお得に買い物

Amazon.co.jpで買い物するならギフト券を現金チャージするのがお得です。チャージごとに最大2.5%分のAmazonポイントがもらえます。また、5000円チャージで1000円分ポイント還元キャンペーンも実施中!!

詳しくはコチラ

  • この記事を書いた人

CHASUKE

某IT企業でエンジニアをしているCHASUKEです。 当ブログでは生活を便利にするガジェットやサービスなどライフスタイルに関わる様々な情報をお届けします。レビュー依頼も受け付けています。「お問い合わせ」より気軽にご相談ください。

© 2021 CHASUKE.com