Nous avons résumé la procédure de création d'un LineBot sur AWS Lambda. J'ai écrit à partir de 1 sans utiliser line-bot-sdk-python. J'utilise des articles presque "de référence".
import json
import logging
import os
import urllib.request
#Préparation de la sortie du journal
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
#Sortie du journal du contenu de la demande
logger.info(event)
body = json.loads(event['body'])
for event in body['events']:
#Définir une liste d'objets de message pour la réponse
messages = []
# 2.Le type d'événement Webhook est message
if event['type'] == 'message':
# 3.Si le type de message est du texte
if event['message']['type'] == 'text':
# 4.Utiliser le contenu du texte reçu comme objet de message
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']+ 'est'
})
#Définir les informations de demande pour les messages de réponse
url = 'https://api.line.me/v2/bot/message/reply'
headers = {
'Content-Type': 'application/json',
#Obtenir le jeton d'accès au canal LINE à partir de la variable d'environnement
'Authorization': 'Bearer ' + os.environ['LINE_CHANNEL_ACCESS_TOKEN']
}
data = {
#Définir le jeton de réponse et l'objet de message
'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:
#Sortie du journal du contenu de la réponse
logger.info(response.read().decode("utf-8"))
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Gestionnaire de fonctions Python AWS Lambda
Lancer une demande de publication
Utilisez la bibliothèque urllib.request. Document officiel Exemple d'utilisation ... urllib.request est suffisant pour le client HTTP Python
Enregistrement des variables d'environnement Depuis Utilisation des variables d'environnement AWS Lambda
import os
region = os.environ['AWS_REGION']
Vous pouvez utiliser des variables d'environnement avec.
・ Renvoyer l'image Objet image de document officiel Reportez-vous à ce document
messages.append({
'type': 'image',
'originalContentUrl': 'URL de l'image',
'previewImageUrl': 'URL de l'image'
})
Ensuite, vous pouvez renvoyer l'image.
API LINE Messaging × Système de réponse simple par AWS Lambda # 1: connectez LINE à Lambda ← Ce service semble être cassé et le lien est rompu.
――Lambda C'est pratique. ――Je veux améliorer ma capacité de lecture de code! ――LineBot semble être applicable de plusieurs manières, alors j'aimerais faire de mon mieux à partir de maintenant.
Recommended Posts