Essayez simplement de recevoir un webhook avec ngrok et Python
tl;dr
- Vous aurez peut-être besoin d'un jeton envoyé par un webhook pour créer un bot, etc.
- Webhook nécessite qu'un serveur soit exposé à l'extérieur, mais essayez de recevoir le webhook aussi facilement que possible
- En utilisant Python, il était facile de créer un serveur qui non seulement écoute mais renvoie également 200 OK.
Matière
- Le sujet est le Webhook de l'API de messagerie de LINE.
- Ceci est un POST de données au format JSON.
- Cette fois, 200 OK est renvoyé afin que le côté LINE puisse déclarer que le webhook peut être reçu.
couler
- Créez un serveur qui renvoie 200 OK, peu importe ce que vous recevez en Python
- Créez un environnement où vous pouvez recevoir un accès de l'extérieur avec ngrok
- Jetez un œil au contenu du webhook que vous avez reçu avec l'outil Inspecter fourni avec ngrok
Créez un serveur qui renvoie 200 OK, peu importe ce que vous recevez en Python
-
Je veux changer le comportement selon GET et POST, donc j'utilise BaseHTTPRequestHandler de http.server.
- https://docs.python.org/ja/3/library/http.server.html
-
Cette fois, écoutez sur le port 80, et lorsque POST est reçu, ne renvoyez que 200 OK pour le moment.
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()
- Veuillez l'exécuter après l'avoir créé.
serving at port 80
Est affiché, c'est OK.
Créez un environnement où vous pouvez recevoir un accès de l'extérieur avec ngrok
- ngrok est un service qui vous permet de publier facilement votre hôte local sur Internet.
- https://ngrok.com/
- https://qiita.com/mininobu/items/b45dbc70faedf30f484e
- Après l'inscription, l'écran ci-dessous apparaîtra, alors suivez le guide.
Guide |
|
- Vous pouvez enregistrer authtoken ou démarrer le tunnel http à l'invite de commande, mais il est également pratique d'utiliser le fichier bat.
- Décompressez le zip téléchargé et vous trouverez ngrok.exe.
- Créez un fichier avec le contenu suivant au même emplacement.
auth.bat
ngrok authtoken 1UFVG5sdtzGXXXXXXXXX
80listen.bat
ngrok http 80
- Double-cliquez sur chacun d'eux pour exécuter.
- auth.bat se ferme instantanément.
- 80listen.bat devrait ressembler à ceci:
ngrok |
|
- Votre adresse est l'adresse se terminant par ngrok.io dans la colonne Renvoi affichée dans cette fenêtre.
Jetez un œil au contenu du webhook que vous avez reçu avec l'outil Inspecter fourni avec ngrok
- Si vous essayez de POSTER à cette adresse ngrok.io de l'extérieur
- L'écran ngrok montre que POST est arrivé à /
ngrok |
|
-
Le contenu de la requête est affiché sur l'écran du serveur réalisé par python.
-
Vous pouvez le voir plus clairement en accédant à http: // localhost: 4040 / inspect / http avec un navigateur.
-
https://ngrok.com/docs#getting-started-inspect
inspecter l'exemple d'écran |
|