LINE ボットを作る -LINE Messaging API と AWS Lambda を連携させる- その2
AWS Lamda 関数作成
AWS Lambda の関数を開いて、[関数の作成]
[一から作成]、今回はPython3.6を選択。
ロールの設定が必要になりますが、特別に必要な権限はないとので、新規で作成します。
[カスタムロールの作成]を選択。作成します。
Python コーディング
まずは必要なライブラリをDLします。
上記のライブラリファイルと、「lambda_function.py」をローカルに保存。
ソースコードの内容は以下。
☆ACCESS_TOKEN 部分は、前回作成したLINEチャネルのアクセストークンを入力。
# -*- coding:utf-8 -*- from __future__ import print_function import requests import json # 定義 LINE_API_ENDPOINT = 'https://api.line.me/v2/bot/message/reply' ACCESS_TOKEN = [おのおののアクセストークン] LINE_API_HEADERS = { 'Authorization': 'Bearer ' + ACCESS_TOKEN, 'Content-type': 'application/json' } # --------------------------------------------- # Webhook用ハンドラー # --------------------------------------------- def lambda_handler(event, context): request_json = event reply_token = '' text = '' payload = '' for e in request_json['events']: # イベントタイプの判断 event_type = e['type'] # メッセージイベント時 if "message" == event_type and "message" in e.keys(): reply_token = e['replyToken'] # 返信先トークン text = e['message']['text'] # 送られてきたメッセージ # 返信用のオブジェクト payload = { "replyToken":reply_token, "messages":[ { "type":"text", "text": text } ] } break # 最初の友達登録時、ブロック解除時など else: reply_token = e['replyToken'] # 返信用のオブジェクト payload = { "replyToken":reply_token, "messages":[ { "type":"text", "text": event_type } ] } #リプライメッセージの送信 requests.post(LINE_API_ENDPOINT, headers=LINE_API_HEADERS, data=json.dumps(payload)) return
以上。