Wir haben das Verfahren zum Erstellen eines LineBot auf AWS Lambda zusammengefasst. Ich habe von 1 aus geschrieben, ohne line-bot-sdk-python zu verwenden. Ich benutze fast "Referenz" Artikel.
import json
import logging
import os
import urllib.request
#Vorbereitung für die Protokollausgabe
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
#Protokollausgabe des Anforderungsinhalts
logger.info(event)
body = json.loads(event['body'])
for event in body['events']:
#Definieren Sie eine Liste von Nachrichtenobjekten für die Antwort
messages = []
# 2.Der Webhook-Ereignistyp ist eine Nachricht
if event['type'] == 'message':
# 3.Wenn der Nachrichtentyp Text ist
if event['message']['type'] == 'text':
# 4.Verwenden Sie den Inhalt des empfangenen Textes als Nachrichtenobjekt
if event['message']['text'] == 'honto':
messages.append({
'type': 'image',
'originalContentUrl': 'https://www.bizcourt.space/bizmarket/assets_c/2019/06/a_ocean_eyes_logo_bg_white_02-thumb-autox227-1304.png',
'previewImageUrl': 'https://www.bizcourt.space/bizmarket/assets_c/2019/06/a_ocean_eyes_logo_bg_white_02-thumb-autox227-1304.png'
})
else:
messages.append({
'type': 'text',
'text': event['message']['text']+ 'ist'
})
#Definieren Sie Anforderungsinformationen für Antwortnachrichten
url = 'https://api.line.me/v2/bot/message/reply'
headers = {
'Content-Type': 'application/json',
#Holen Sie sich das LINE-Kanalzugriffstoken von der Umgebungsvariablen
'Authorization': 'Bearer ' + os.environ['LINE_CHANNEL_ACCESS_TOKEN']
}
data = {
#Antworttoken und Nachrichtenobjekt festlegen
'replyToken': event['replyToken'],
'messages': messages
}
request = urllib.request.Request(url, data = json.dumps(data).encode('utf-8'), method = 'POST', headers = headers)
with urllib.request.urlopen(request) as response:
#Protokollausgabe des Antwortinhalts
logger.info(response.read().decode("utf-8"))
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Python AWS Lambda-Funktionshandler
Wirf eine Post-Anfrage
Verwenden Sie die Bibliothek urllib.request. Offizielles Dokument Beispielnutzung ... urllib.request ist für Python-HTTP-Client ausreichend
Registrierung von Umgebungsvariablen Aus Verwenden von AWS Lambda-Umgebungsvariablen
import os
region = os.environ['AWS_REGION']
Sie können Umgebungsvariablen mit verwenden.
・ Geben Sie das Bild zurück Offizielles Dokumentbildobjekt Siehe dieses Dokument
messages.append({
'type': 'image',
'originalContentUrl': 'Bild URL',
'previewImageUrl': 'Bild URL'
})
Dann können Sie das Bild zurückgeben.
LINE Messaging API × Einfaches Antwortsystem von AWS Lambda # 1: Verbinden Sie LINE mit Lambda ← Dieser Dienst scheint defekt zu sein und der Link ist defekt.
――Lambda Es ist bequem. ――Ich möchte meine Code-Lesefähigkeit verbessern! ――LineBot scheint in mehrfacher Hinsicht anwendbar zu sein, daher möchte ich von nun an mein Bestes geben.