LoginSignup
33
32

More than 5 years have passed since last update.

AWS LambdaとIFTTTでお手軽にpush通知を実現する

Last updated at Posted at 2015-12-14

ひさびさにIFTTTをいじってたら、Maker Channelができたことを知ったので、AWS LambdaとIFTTTでpush通知を実現してみた。
今回は単純に Hello from Lambda! をLambda->IFTTT経由で通知させてみる。

Maker ChannelはWebhookURLを提供してくれるので、そこにGETかPOSTでリクエストをするとトリガーとなってくれる。

IFTTT側の設定

Recipe_31042250_-_IFTTT.png

  1. https://ifttt.com/maker でSecretKeyを取得する
  2. Trigger(this)を「Maker」、Action(that)を「IF Notifications」でRecipeを作る
    • このとき入力したevent nameはWebhookURLの一部になる
  3. RecipeのNotification(push通知内容)に {{Value1}} を入力して保存する

Lambda(Node.js)のコード

console.log('Loading function');

var https = require('https');

var iftttEventName = 'sample_lambda_event'; // IFTTTで作ったRecipeのEventName
var iftttSecretKey = 'YOUR SECRET KEY'; // MakerChannelのSecretKey

var body = JSON.stringify({ value1: 'Hello from Lambda!' });

var options = {
    hostname: 'maker.ifttt.com',
    path: '/trigger/'
        + iftttEventName
        + '/with/key/'
        + iftttSecretKey,
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Content-Length': body.length
    }
};

exports.handler = function(event, context) {
    https.request(options, function (res) {
        res.setEncoding('utf8');
        res.on('data', function(str) {
            console.log(str);
        });
        context.succeed(res.statusCode);
    }).write(body);
};

注意点

IFTTTに渡せる変数は value1 value2 value3 のみなので注意

実際のpush通知キャプチャ

写真 2015-12-13 19 22 23.png

まとめ

IFTTTのMakerChannel便利!
今回は決まった文字列を通知させただけだったのでLambdaである必要性はないですが、イベントと連動して何かを通知させるのもいいし、Lambdaがcron対応したので凝ったリマインダーみたいのも作れていろいろ有用そうー

ひとりごと

LambdaのRuby対応はやくこないかなー(´・ω・`)

33
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
32