AWSIotボタン→LINEにメッセージを送る
経緯
コロナの影響でおばあちゃんが家を出れずに退屈しているらしいのだが、
高齢のためライン(スマホ)が使えない。
孫15人のラインに一斉送信して、おばあちゃんの相手をしてくれる人を探す!という公算。
たまたまAWSIotエンタープライズ(2500円)という面白いデバイスを発見したので、さっそく実装してみた。
手順
①IOTボタンの設定
AWS IoT 1-Click アプリをアップルストア又は、GooglePlayから自分のスマホにインストールし、デバイスの登録設定、Wifi設定を行ってください。
②LINE Notify のトークンを発行する
トークンは、マイページの「アクセストークンの発行(開発者向け)」以下の「トークンを発行する」ボタンから発行できます。
[https://notify-bot.line.me]
トークン発行後、設定したルームに LINE notify を招待します。
③コマンドラインからトークンをPOSTする
リナックスからはカールコマンドでPOSTします。
Windowsの場合 curl コマンドをダウンロードしてインストールしてください。[https://notify-bot.line.me]
curl -X POST -H "Authorization: Bearer <取得したトークン>" -F "message=test from curl" https://notify-api.line.me/api/notify
カールコマンドからLINE Notifyにポストして自分のラインに"hello"とメッセージを送るテストをしてみてください。
curl https://notify-api.linuthorization: Bearer <取得したトーケン>' -F 'message=hello'
④AWSLambdaを作成
今回はPython3.8で実装してみました。
import os
import urllib.parse
import urllib.request
import json
def lambda_handler(event, context):
LINE_TOKEN = os.environ.get("LINE_TOKEN")
LINE_NOTIFY_URL = "https://notify-api.line.me/api/notify"
//クリックタイプをイベント情報として取得する
clicktype = event['deviceEvent']['buttonClicked']['clickType']
//クリックタイプに応じた処理の分岐
if (clicktype == "SINGLE"):
msg = "暇だから誰か電話して I am bored. Please call me😗"
elif (clicktype == "DOUBLE"):
msg = "野菜がとれたよ/ I harvested some veggies🥕"
elif (clicktype == "LONG"):
msg = "緊急事態。助けて!/Help me🚓 🚑 🚒"
else:
msg = "clickTypeを正常に取得できませんでした"
method = "POST"
headers = {"Authorization": "Bearer <トークンをいれる>"}
payload = {"message": msg}
payload = urllib.parse.urlencode(payload).encode("utf-8")
req = urllib.request.Request(
url=LINE_NOTIFY_URL, data=payload, method=method, headers=headers)
urllib.request.urlopen(req)
④IotボタンとAWSLambdaを紐付ける
AWSのAWS IoT 1-Clickのページに行き、
管理 > プロジェクト>作成ボタン
アクションから”Lambda関数を選択”を選ぶ。
Lambda関数のところを自分の作ったLambdaファイルを選択し、プロジェクトの作成をクリック。
④ボタンを押して見る ポチッ
ボタンを押せばAWSLambdaがキックされラインにメッセージが送られる!
AWSLambdaを使えばサーバーレスで出来ちゃうんです。ラインだけではなくスマート家電、他のSNS等へのプッシュなどボタンの使い道は多様です。結構簡単に作れちゃうので是非試してみてください。
最後までお読み頂きありがとうございました。
Author And Source
この問題について(AWSIotボタン→LINEにメッセージを送る), 我々は、より多くの情報をここで見つけました https://qiita.com/kyoheiyasukawa/items/1f1fa9a1520f31625e05著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .