Ich habe beschlossen, eine App zu erstellen, die automatisch Nachrichten mit LINE sendet, und habe mich daher für die Verwendung der LINE-API entschieden. Ich fing an zu arbeiten und dachte, ich könnte eine Nachricht mit Locken senden. Infolgedessen konnte ich mit LINE_API + AWS (APIGateway + Lambda) eine Nachricht mit Curl senden. Ich wollte das damalige Know-how notieren und habe die vorhandenen Informationen persönlich nicht gefunden, also habe ich sie veröffentlicht.
Erstellen Sie zunächst normal ein LINE-Konto. LINE kann ein Konto erstellen, ohne "ID" und "Passwort" im System zu registrieren. Bitte registrieren Sie "ID" und "Passwort", um ein LINE-Konto zu erstellen. Wenn Sie es bereits erstellt haben, ist diese Arbeit nicht erforderlich.
Erstellen Sie als Nächstes einen BOT. Erstellen Sie schließlich ein Konto für die Entwicklung. Wenn Sie sich die offizielle Website ansehen, sehen Sie Begriffe wie BOT, Anbieter und Kanal. Diejenigen, die die Details verstehen, können sie klar unterscheiden, aber ich konnte sie nur irgendwie verstehen, wahrscheinlich wegen meines Unverständnisses. Zusammenfassend kann man sich zunächst alles als ≒ (fast gleich) vorstellen.
https://developers.line.biz/ja/docs/messaging-api/overview/
Fügen Sie dann den Anbieter zur Anbieterliste hinzu. Sie können verstehen, dass Sie ein neues LINE-Konto für das automatische Senden und Antworten erstellen.
https://developers.line.biz/console/channel/1653419974/basic/
Stellen Sie nach der Erstellung sicher, dass Sie mit Ihrem Entwicklungskonto chatten können. Am unteren Bildschirmrand befindet sich ein QR-Code. Laden Sie uns daher ein, mit Ihrem eigenen Konto zu sprechen, das Sie zuerst erstellt haben.
Nachdem Sie den Betrieb von BOT bestätigt haben, legen Sie die URL des Webhook-Ereignisses fest, um eine Nachricht an den vorhandenen Chatroom zu senden. Der Grund, warum diese Arbeit erforderlich ist, besteht darin, dass beim Senden einer Nachricht die Benutzer-ID und die Raum-ID des Ziels erforderlich sind. Es wurde gesagt, dass diese nicht durch normale LINE-Benutzeroperationen erhalten werden können und nicht einfach mit der LINE-App erhalten werden können.
Ändern Sie den Teil des roten Rahmens oben.
Was ist ein Webhook-Event? Es ist eine Funktion, die beim Empfang einer Nachricht eine feste Nachricht an die festgelegte URL sendet.
Hier kommt AWS API Gateway + Lambda ins Spiel. Legen Sie die API-Gateway-URL in der Webhook-URL fest.
Das folgende Beispiel sollte so verfügbar sein, wie es für die Lambdaquelle ist. Es ist Python.
lambda_function.py
import json
import traceback
# ==================================================
#Erste Funktion von Lambda aufgerufen
# ==================================================
def lambda_handler(event, context):
try:
#Protokollausgabe des Anforderungsinhalts
log(event, 'receive request.')
createResponse()
except:
#Wenn ein unerwarteter Fehler auftritt
logger.log(traceback.format_exc())
traceback.print_exc()
return createResponse()
# ==================================================
#Generieren Sie eine Antwort
# ==================================================
def createResponse():
return {
'isBase64Encoded': False,
'statusCode': 200,
'headers': {},
'body': {}
}
# ==================================================
#Protokollausgabe
# ==================================================
def log(event, msg):
print('EVENT >> ' + str(event))
print('LOG >> ' + str(msg))
Die API-Gateway-Einstellungen sehen folgendermaßen aus
Das Protokoll wird an Cloudwatch ausgegeben. Hier sollten UserId und roomId ausgegeben werden. Sie können diese als Ziele angeben.
Verschiedene Dinge sind herausgekommen. Ich habe versucht, es leicht verständlich zu machen. Genau genommen gibt es viele verschiedene Punkte, aber ich denke, es ist leicht zu verstehen, wenn ich so denke, basierend auf meinem eigenen Urteilsvermögen und meinen Vorurteilen.
① http-Nachricht wird vom Mobiltelefon gesendet (= Nachricht wird von LINE gesendet) ② Der Server sendet die empfangene Nachricht an das Mobiltelefon / den BOT im Raum. ③ Die POST-Nachricht wird an die URL gesendet, die als Ziel-URL des Webhooks in BOT registriert ist.
Zum Schluss werde ich eine Nachricht mit Curl senden. Das Senden einer Nachricht mit LINE wird als Push bezeichnet. Da die API für die Öffentlichkeit zugänglich ist, senden Sie sie entsprechend. https://developers.line.biz/ja/reference/messaging-api/#send-push-message
Übrigens habe ich eine Chrome-Erweiterung namens ASR verwendet. Ich denke, alles, was eine http-Nachricht senden kann, ist in Ordnung.
Methode POST URL https://api.line.me/v2/bot/message/push Content-Type application/json Autorisierungsträger Ausgestelltes Autorisierungstoken
{
"to":ID erhalten,
"messages":[
{
"type":"text",
"text":"Sie können es automatisch so senden."
}
]
}
Recommended Posts