LINEからAWS API Gatewayをとおしてlambdaを叩くことができた.
次は、叩かれたlambdaからLINEに返すことをする。
LINE botあてに送ったメッセージをそのまま返す、いわゆるオウム返しというやつをする。
チャンネルアクセストークン
発行
- LINE developersで、MassagingAPI設定から、チャネルアクセストークンを発行する
Lambdaの環境変数に設定
例えば
LINEで発行したトークンが HogePiyo
だった場合、
Lambdaで設定するときは Bearer HogePiyo
という値を設定する
Lambda関数の編集
lambda_function.pyを以下のように変更し、デプロイする。
これで、LINE botに何かメッセージを送れば同じことを返事してくれる。
import json import urllib.request import os def reply(replyToken, message): url = "https://api.line.me/v2/bot/message/reply" method = "POST" headers = { 'Authorization': os.environ['CHANNEL_ACCESS_TOKEN'], 'Content-Type': 'application/json' } params = { "replyToken": replyToken, "messages": message } # リクエスト組み立て request = urllib.request.Request( url, json.dumps(params).encode("utf-8"), method=method, headers=headers ) # リクエスト投げる with urllib.request.urlopen(request) as res: return res.read() def lambda_handler(event, context): # LINEから送られてきた内容から必要なものを取り出す event_body = json.loads(event['body'])['events'][0] reply_token = event_body['replyToken'] text = event_body['message']['text'] # LINEに返すメッセージを組み立てる message = [ { "type": "text", "text": text } ] reply(reply_token, message) return
次回は、googleカレンダーとの連携