J'ai décidé de créer une application qui envoie automatiquement des messages avec LINE, j'ai donc décidé d'utiliser l'API de LINE. J'ai commencé à travailler en pensant que je pouvais envoyer un message avec curl. En conséquence, j'ai pu envoyer un message avec curl en utilisant LINE_API + AWS (APIGateway + lambda). Je voulais prendre note du savoir-faire à ce moment-là, et personnellement, je n'ai pas extrait les informations des informations existantes, alors je les ai postées.
Tout d'abord, créez un compte LINE normalement. LINE peut créer un compte sans enregistrer «ID» et «mot de passe» dans le système, mais veuillez enregistrer «ID» et «mot de passe» pour créer un compte LINE. Si vous l'avez déjà créé, ce travail est inutile.
Ensuite, créez un BOT. Après tout, créez un compte pour le développement. Lorsque vous consultez le site Web officiel, vous verrez des termes tels que BOT, fournisseur et canal. Ceux qui comprennent les détails peuvent clairement le distinguer, mais je n'ai pu le comprendre que d'une manière ou d'une autre, probablement à cause de mon manque de compréhension. En conclusion, vous pouvez tout d'abord considérer tout comme un compte ≒ (presque égal).
https://developers.line.biz/ja/docs/messaging-api/overview/
Ajoutez ensuite le fournisseur à la liste des fournisseurs. Vous pouvez comprendre que créer un nouveau compte LINE pour l'envoi et la réponse automatiques.
https://developers.line.biz/console/channel/1653419974/basic/
Une fois créé, assurez-vous de pouvoir discuter avec votre compte de développement. Il y a un code QR en bas de l'écran, alors invitons à parler avec votre propre compte que vous avez créé en premier.
Après avoir confirmé le fonctionnement du BOT, définissez l'URL de l'événement de webhook pour envoyer un message à la salle de discussion existante. La raison pour laquelle ce travail est nécessaire est que lors de l'envoi d'un message, l'ID utilisateur et l'ID de salle de la destination sont requis. Il a été dit que ceux-ci ne peuvent pas être obtenus par les opérations normales de l'utilisateur LINE et ne peuvent pas être facilement obtenus à l'aide de l'application LINE.
Changez la partie du cadre rouge ci-dessus.
Qu'est-ce qu'un événement Webhook? Il s'agit d'une fonction qui envoie un message fixe à l'URL définie lorsqu'un message est reçu.
C'est là qu'intervient AWS API Gateway + lambda. Définissez l'URL de la passerelle API dans l'URL du webhook.
L'exemple ci-dessous doit être disponible tel quel pour la source de lambda. C'est du python.
lambda_function.py
import json
import traceback
# ==================================================
#Première fonction appelée par lambda
# ==================================================
def lambda_handler(event, context):
try:
#Sortie du journal du contenu de la demande
log(event, 'receive request.')
createResponse()
except:
#Lorsqu'une erreur inattendue se produit
logger.log(traceback.format_exc())
traceback.print_exc()
return createResponse()
# ==================================================
#Générer une réponse
# ==================================================
def createResponse():
return {
'isBase64Encoded': False,
'statusCode': 200,
'headers': {},
'body': {}
}
# ==================================================
#Sortie de journal
# ==================================================
def log(event, msg):
print('EVENT >> ' + str(event))
print('LOG >> ' + str(msg))
Les paramètres de la passerelle API ressemblent à ceci
Le journal est sorti sur cloudwatch. UserId et roomId doivent y être générés. Vous pouvez les spécifier comme destinations.
Diverses choses sont sorties. J'ai essayé de le rendre facile à comprendre. À proprement parler, il y a beaucoup de points différents, mais je pense qu'il est facile de comprendre si je pense de cette façon en fonction de mon propre jugement et de mes préjugés.
① Le message http est envoyé depuis le téléphone mobile (= le message est envoyé par LINE) ② Le serveur envoie le message reçu au téléphone mobile / BOT de la pièce. ③ Le message POST est envoyé à l'URL enregistrée comme URL de destination du webhook dans BOT.
Enfin, je vais envoyer un message avec curl. L'envoi d'un message avec LINE s'appelle push, et puisque l'API est ouverte au public, envoyez-le en conséquence. https://developers.line.biz/ja/reference/messaging-api/#send-push-message
Au fait, j'ai utilisé une extension chrome appelée ASR. Je pense que tout ce qui peut envoyer un message http est très bien.
Méthode POST URL https://api.line.me/v2/bot/message/push Content-Type application/json Jeton d'authentification émis par le porteur d'autorisation
{
"to":ID obtenu,
"messages":[
{
"type":"text",
"text":"Vous pouvez l'envoyer automatiquement comme ça."
}
]
}
Recommended Posts