メインコンテンツまでスキップ

AWS Lambda でLine bot を作成する

Line bot を作成し、自動でメッセージを送受信する方法を解説します。

LINE Developersコンソールからチャネルを作成

下記手順を参考にLINE Developersコンソールからチャネルを作成します。
LINE Developersコンソールでチャネルを作成する

Webhook用のLambda関数を作成する

👇これより先は下記記事の内容を前提とします REST API としてAWS Lambda関数を呼び出す

  • Lambda関数はフックした内容をprint=ログ出力するのみとします。
import json

def lambda_handler(event, context):

print("event")
print(event)

return_data = {}

return {
'statusCode': 200,
'headers': {
'Access-Control-Allow-Origin': '*'
},
'body': json.dumps(return_data)
}

  • API GatewayはPOSTメソッドを作成します。
    image

Webhookを設定する

下記手順を参考にWebhookを設定します。 Webhook URLを設定する

  • API GatewayにデプロイしたURLを取得します。
    image

  • LINE Developersコンソールへログインし、Webhookへ設定します。 image image

  • Webhookを有効化します。
    image

  • QRコードに表示されたQRコードを利用してAPIをお友達追加します。
    image.png

  • CloudWatchのログに'event:follow(お友達追加)'、'userID:ユーザID`が記録されることを確認します。 image

メッセージを送信する

メッセージ送信のため、チャンネルアクセストークンを取得

ユーザIDを指定してメッセージ送信

import json
import urllib.request

main_logic()

def main_logic():
print("main_logic start")

access_token = "xxxx_access_token_xxxxxxxxxx"

url = "https://api.line.me/v2/bot/message/push"
method = "POST"
headers = {
'Authorization': "Bearer " + access_token,
'Content-Type': 'application/json'
}
messages = [
{
"type": "text",
"text": "テストメッセージです!!"
}
]
params = {
"to":"Uxxxxxsend_userid_XXXXXXXXXXXXXXXXXXX"
,"messages": messages
}
request = urllib.request.Request(url, json.dumps(params).encode("utf-8"), method=method, headers=headers)
with urllib.request.urlopen(request) as res:
body = res.read()
print(body)

👇前提記事

REST API としてAWS Lambda関数を呼び出す

👇参考URL

[keywords] AWS lambda Line linebot

AWS Lambda でLine bot を作成する

更新日:2024年02月13日

ITとソフトウェアの人気オンラインコースHP Directplus -HP公式オンラインストア-