Dieser Artikel ** Irgendwie jedes Mal, wenn ich die Operation überprüfe, auf Heroku drücken! !! ** Für diejenigen, die denken.
Überlegen Sie sich vor der Lösung des Problems, warum Sie Heroku überhaupt verwendet haben. LINEbot und Heroku waren über ein Zugriffstoken, einen geheimen Schlüssel und eine ** Webhook-URL ** verbunden. "Zahl" Sobald die Heroku-App veröffentlicht (bereitgestellt) ist, kann sie eine URL haben (~ herokuapp.com). Dies ist die, die ich als ** Webhook-URL ** verwende. Ich wünschte, ich könnte diese Webhook-URL selbst vorbereiten, aber ich kann es nicht einfach. Ich hatte also keine andere Wahl, als Heroku bereitzustellen und zu verwenden, um die URL der App zu erhalten (aber nicht nur).
** Veröffentlichen Sie Ihren lokalen Host ** nach außen ** ohne Heroku zu verwenden. Auf diese Weise können Sie eine Webhook-URL vorbereiten. (Ich frage mich, ob es sicher ist, localhost zu veröffentlichen, aber ich werde es verlassen.) Das Tool, das ich benutze, ist ** ngrok **.
Laden Sie die Zip-Datei mit dem roten Knopf auf der [offiziellen Website von ngrok] herunter (https://dashboard.ngrok.com/get-started).
Verwenden Sie als Nächstes den folgenden Befehl, um die Version zu dekomprimieren und zu überprüfen.
ngrok Installation
cd ~/Downloads
unzip ngrok-stable-linux-amd64.zip
sudo cp ngrok /usr/bin/
ngrok version
Sie können jetzt ngrok verwenden. Bei der tatsächlichen Verwendung
Extern auf ngrok veröffentlicht
ngrok http [Port-Nummer]
Die [Portnummer] des lokalen Servers ist nach außen offengelegt.
ngrok Ausführungsergebnis
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Session Expires 7 hours, 59 minutes
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:☓☓☓☓
Forwarding http://☓☓☓☓☓☓☓☓.ngrok.io -> http://localhost:5000
Forwarding https://☓☓☓☓☓☓☓☓.ngrok.io -> http://localhost:5000
Connections
ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Die URL bei https: // ☓☓☓☓☓☓☓☓.ngrok.io
neben Weiterleitung
macht localhost nach außen offen (Portnummer ist 5000). Verwenden Sie dies als ** Webhook-URL! ** ** **
** Vorbereitung für LINEbot ** Es gibt viele Artikel, also versuchen Sie es bitte mit Google
** Einstellungen für Umgebungsvariablen ** Umgebungsvariablen festlegen. Erstellen Sie eine Datei mit dem Namen .env unter dem Projekt und kopieren Sie die üblichen zwei von LINE-Entwicklern und fügen Sie sie ein (ohne oder nichts hinzuzufügen, so wie es ist).
.env ist eine Datei, die Umgebungsvariablen festlegt. Senden Sie sie daher nicht an GitHub. Informieren Sie sich über die Verwendung der .gitignore-Datei, um ein Pushing zu vermeiden.
.env
LINE_CHANNEL_ACCESS_TOKEN = ☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓
LINE_CHANNEL_SECRET = ☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓
・ ** Führen Sie main.py aus ** Bereiten Sie zwei Terminals vor und führen Sie ngrok erneut auf einem aus. (Da ngrok bei jeder Ausführung eine andere URL zuordnet, sollte sich der Wert früher geändert haben.) Wenn dies ausgeführt wird, hacken die LINE-Entwickler die URL
https://☓☓☓☓☓☓☓☓.ngrok.io/callback
Auf (https!) Setzen. Führen Sie schließlich main.py wie folgt in einem anderen Terminal aus.
main.Führen Sie py aus
pipenv shell //In einer virtuellen Umgebung
pipenv run python3.8 main.py
Hoffentlich funktioniert das Beispiel.
** Im Fehlerfall **
Error: the command python3.8 could not be found within PATH or Pipfile's [scripts].
Wenn Sie einen Fehler wie oben erhalten
Ändern Sie python3.8
in eine, die Ihrer Umgebung entspricht.
main.Führen Sie py aus
pipenv run python main.py
Zum Beispiel "Python" oder "Python3".
Ich konnte die Operation vor Ort bestätigen, ohne jedes Mal auf Heroku zu drücken. Edit main.py ⇒ Ausführen ⇒ Einfach bearbeiten, damit die Entwicklung reibungslos verläuft.
** ngrok ändert die URL jedoch jedes Mal, wenn sie ausgeführt wird **, sodass Sie die Webhook-URL der LINE-Entwickler jedes Mal ändern müssen, wenn Sie ngrok stoppen. Ich bin auch der Meinung, dass es schlecht für die Sicherheit ist, localhost nach außen zu bringen ** (ich kenne die Details nicht).
das ist alles!
Es scheint, dass ngrok sicher oder gefährlich ist, kostenlos oder bezahlt und so weiter. Überprüfen Sie die Aktionen rund um den Webhook auf dem lokalen Host ngrok ist zu bequem Verwenden Sie ngrok so sicher wie möglich (Standardauthentifizierung)
Recommended Posts