TECH ラズパイ

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

どうも、CHASUKEです。

PythonスクリプトからWebhookでIFTTTトリガーにアクセスする方法をご紹介します。

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

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

Pythonはラズパイに最初からインストールされてるので、すぐに使えます。それに他のプログラム言語と違いコンパイル不要で構文も簡単なので、読みやすく書きやすいのが特徴です。手軽なので僕は何か動かしたいときは、必ずPythonを使うくらい好き。

自作スクリプトからIFTTT経由で自動化させてみたい人、ラズパイ使ってスマートホームを加速させたいと思っている方の参考になれば幸いです!!

それではやっていきましょう。

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

試しに、以下をやってみます。

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

ってな感じのLINE連携です。

 

▼手順は以下の通り。

  1. IFTTTアプレット作成
  2. HTTPアクセス先の確認
  3. Pythonスクリプト作成
  4. Pythonスクリプト実行

 

IFTTTアプレット作成

IFTTT「https://ifttt.com/discover」にてNew Appletを作成していきます。

 

IFTTTは『もし 〇〇 ならば、 △△ する』で成り立ちます。

先に、『〇〇(トリガー)』を作成してきます。

 

▼Webhooksチャンネルを選択

 

▼Webhooksトリガーには1つしか選択肢がありません。

 

▼ここでは、HTTPアクセスするときのイベント名を指定します。

 

 

続いては、『△△(アクション)』を作成してきます。

 

▼LINEチャンネルを指定。(初回はログインが必要かも。)

 

▼LINEチャンネルのアクションも1つの選択肢しかありません。

 

LINE Notifyに個人LINEが来るように設定します。

LINEメッセージ内容は、シンプルにアプリから連携された「Value1」「Value2」「Value3」を表示するだけ。

 

▼適当にアプレットのタイトルを決めて、完了です。

 

 

HTTPアクセス先の確認

先ほど作ったIFTTTアプレットのWebhooksチャンネルにアクセスするための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.5.3
$ pip3 -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)

 

▼作成した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まで連係しますが、もしValueを連係したくない場合は、以下のようなコードとなる。

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」から通知がきてますねー。

※3回実行しているので、何個もきてます。

最後に

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

今回は単純なLINE通知をアクションとしましたが、これを応用すれば、もっと高度な自動化が可能になるはずです。

それではまた。

Amazonでお得に買い物

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

詳しくはコチラ

  • この記事を書いた人
CHASUKE

CHASUKE

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

Copyright© CHASUKE.com , 2019 All Rights Reserved.