Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten
tl;dr
- Möglicherweise benötigen Sie einen von einem Webhook gesendeten Token, um einen Bot usw. zu erstellen.
- Für Webhook muss ein Server nach außen ausgesetzt sein. Versuchen Sie jedoch, Webhook so einfach wie möglich zu empfangen
- Mit Python war es einfach, einen Server zu erstellen, der nicht nur zuhört, sondern auch 200 OK zurückgibt.
Gegenstand
- Der Betreff ist der Webhook der Messaging-API von LINE.
- Dies ist ein POST von JSON-formatierten Daten.
- Dieses Mal wird 200 OK zurückgegeben, damit die LINE-Seite deklarieren kann, dass der Webhook empfangen werden kann.
fließen
- Erstellen Sie einen Server, der 200 OK zurückgibt, unabhängig davon, was Sie in Python erhalten
- Erstellen Sie eine Umgebung, in der Sie mit ngrok Zugriff von außen erhalten können
- Sehen Sie sich den Inhalt des Webhooks an, den Sie mit dem mit ngrok gelieferten Inspect-Tool erhalten haben
Erstellen Sie einen Server, der 200 OK zurückgibt, unabhängig davon, was Sie in Python erhalten
-
Ich möchte das Verhalten gemäß GET und POST ändern, daher verwende ich BaseHTTPRequestHandler von http.server.
- https://docs.python.org/ja/3/library/http.server.html
-
Hören Sie diesmal auf 80 Ports und geben Sie beim Empfang des POST vorerst nur 200 OK zurück.
import http.server
import socketserver
import json
class MyHandler(http.server.BaseHTTPRequestHandler):
def do_POST(self):
self.send_response(200)
self.end_headers()
with socketserver.TCPServer(("", 80), MyHandler) as httpd:
httpd.serve_forever()
- Bitte führen Sie es nach dem Erstellen aus.
serving at port 80
Wird angezeigt, ist es OK.
Erstellen Sie eine Umgebung, in der Sie mit ngrok Zugriff von außen erhalten können
- ngrok ist ein Dienst, mit dem Sie Ihren lokalen Host einfach im Internet veröffentlichen können.
- https://ngrok.com/
- https://qiita.com/mininobu/items/b45dbc70faedf30f484e
- Nach der Anmeldung wird der folgende Bildschirm angezeigt. Befolgen Sie daher die Anleitung.
Guide |
|
- Sie können Authtoken registrieren oder den http-Tunnel an der Eingabeaufforderung starten. Es ist jedoch auch praktisch, die bat-Datei zu verwenden.
- Entpacke die heruntergeladene Zip und du findest ngrok.exe.
- Erstellen Sie eine Datei mit den folgenden Inhalten am selben Speicherort.
auth.bat
ngrok authtoken 1UFVG5sdtzGXXXXXXXXX
80listen.bat
ngrok http 80
- Doppelklicken Sie jeweils auf die Ausführung.
- auth.bat wird sofort geschlossen.
- 80listen.bat sollte folgendermaßen aussehen:
ngrok |
|
- Ihre Adresse ist die Adresse, die auf ngrok.io in der in diesem Fenster angezeigten Spalte Weiterleitung endet.
Sehen Sie sich den Inhalt des Webhooks an, den Sie mit dem mit ngrok gelieferten Inspect-Tool erhalten haben
- Wenn Sie versuchen, von außen auf diese ngrok.io-Adresse zu POSTEN
- Der ngrok-Bildschirm zeigt an, dass POST bei / angekommen ist
ngrok |
|
-
Der Inhalt der Anfrage wird auf dem Bildschirm des von Python erstellten Servers angezeigt.
-
Sie können es deutlicher sehen, indem Sie mit einem Browser auf http: // localhost: 4040 / inspect / http zugreifen.
-
https://ngrok.com/docs#getting-started-inspect
Beispiel für den Bildschirm überprüfen |
|