[PYTHON] Checkpoint, wenn der LINE Parrot Return Bot von Heroku abhängig ist

Es ist eine durcheinandergebrachte Geschichte, aber ** Ich war durch alte Informationen im Netz verwirrt und habe sie einen halben Tag lang mit einem Papageien-Rückgabe-Bot zerquetscht **, also werde ich sie mit Reue aufschreiben.

Umgebung

Konto erstellen ~ In Heroku bereitstellen

Zunächst wurden die folgenden Schritte durchgeführt.

Für bestimmte Verfahren und Codes habe ich auf die Artikel und Blog-Artikel von qiita verwiesen, die bei der Suche nach "LINE bot Python" angezeigt werden. Die folgenden Blog-Artikel wurden in der Referenz leicht verständlich organisiert, daher werde ich hier auf das detaillierte Verfahren verzichten.

Erstellen Sie einen LINE-Bot mit der LINE-Messaging-API + Python + Heroku

Bitte beachten Sie jedoch, dass ** die neuesten Spezifikationen nicht die Einstellung "Fixie" ** erfordern, wie unten beschrieben. (Nicht auf diesen Blog-Artikel beschränkt, es gibt immer noch einige Artikel, die in der Suche einen hohen Rang einnehmen und so geschrieben sind, dass sie Fixie-Einstellungen erfordern.)

...... Nun, ich habe es so implementiert und mit dem Bot gesprochen, aber es gibt den Papagei nicht zurück.

Prüfpunkt 1: Misst gegen 500 Fehler, die mit der Schaltfläche Überprüfen im Webhook angezeigt werden

Bei der Überprüfung durch Klicken auf die Schaltfläche "Überprüfen" der Webhook-URL im Verwaltungsbildschirm von LINE Developers wurde die Fehlermeldung "Der Webhook hat einen anderen HTTP-Statuscode als 200 zurückgegeben" angezeigt.

verify.png Überprüfen Sie die Protokolle mit `heroku logs -t`. main.py (Bot-App) lief und schien einen 500-Fehler zurückzugeben. Dies scheint zu bestimmen, dass das über die Schaltfläche Überprüfen gesendete replyToken kein gültiges replyToken ist. Der Referenzartikel ist unten.

Über das Problem, dass beim Überprüfen der Verbindung der Webhook-URL von LINE-Entwicklern ein Fehler auftritt

Nach dem Hinzufügen des Codes, der auf diesen Artikel verweist, wird die Anforderung über die Schaltfläche Überprüfen jetzt akzeptiert.

Checkpoint 2: Aktivieren Sie Use Webhook

Selbst wenn ich auf meinem Smartphone "A" oder "Test" sende, funktioniert das Protokoll überhaupt nicht. ...... Nein, ist es nicht zu viel Fehler? Es ist so, aber Use Webhook wurde deaktiviert. Als ich es einschaltete, wurde die Anfrage gesendet.

usewebhook.png

Prüfpunkt 3: In den neuesten Spezifikationen muss keine IP-Adresse angegeben werden

Sie können sich jedoch nicht mit dieser IP-Adresse verbinden! Ich bekomme den Fehler. Details werden in der "Ergänzung" unten beschrieben, aber ein Fehler ist aufgetreten, weil die Fixie-Einstellung fehlgeschlagen ist.

Wenn Sie mit Heroku einen LINE-Bot erstellen, setzen Sie Fixie trotzdem! Es gibt viele Artikel, in denen es heißt, aber wie Sie in den offiziellen FAQ unten sehen können, ** müssen Sie nach den neuesten Spezifikationen keine IP-Adresse angeben. Sie müssen Fixie also gar nicht erst verwenden. ** ** **

FAQ zu LINE BOT & Beacon-Entwicklern (von Zeit zu Zeit aktualisiert)

Muss ich die Server IP Whitelist registrieren?

Keine Registrierung erforderlich.

Wenn Sie Einschränkungen festlegen möchten, registrieren Sie sich einfach.

Wenn Sie es umgekehrt angeben, können Sie nur auf diese IP zugreifen. Wenn Sie also eine Fehlermeldung erhalten, stellen Sie sicher, dass die falsche IP-Adresse nicht in dieser Liste enthalten ist.

IP.png

Ergänzung zum Checkpoint 3

Selbst wenn Sie die ausgehende IP von Fixie auflisten, ist es in Ordnung, wenn Sie von dort aus eine korrekte Verbindung herstellen können. In meinem Fall konnte ich, obwohl ich Fixie eingestellt habe, keine Anfrage von einer festen IP senden, und wenn ich mir das Fehlerprotokoll ansehe

"message": "Access to this API denied due to the following reason: Your ip address [*.**.***.***] is not allowed to access this API. Please add your IP to the IP whitelist in the developer center."

(Der Teil [*. **. ***. ***] ändert sich bei jedem Neustart der App). Wahrscheinlich, weil ich die Beschreibung zur Verwendung des Proxys nicht in den Code der Bot-App selbst eingefügt habe.

Das Folgende ist ein Referenzartikel für PHP. Ich denke, es gibt wahrscheinlich eine äquivalente Beschreibung in Python, aber ich werde diesmal nicht darauf eingehen. .. ..

[50: LINE BOT API] Aum BOT mit PHP + Heroku

Die Beschreibung, die den Proxy auf der PHP-Seite durchläuft, fehlte. Ich habe die URL des von Fixie mit curl_setopt erstellten Proxys festgelegt und es hat einwandfrei funktioniert.

Beiseite

Die Standardnachricht "Vielen Dank für Ihre Nachricht! Dieses Konto akzeptiert leider keine Einzelanfragen. Bitte warten Sie auf die nächste Zustellung" lautet "LINE Official Account Manager-Antworteinstellungen> Erweiterte Einstellungen>" Es sollte entsprechend in der Antwortnachricht deaktiviert werden (ich dachte, es würde zuerst aufgrund eines Fehlers herauskommen ...).

Recommended Posts

Checkpoint, wenn der LINE Parrot Return Bot von Heroku abhängig ist
Lassen Sie einen Papagei LINE Bot mit AWS Cloud9 zurückgeben
Papagei gibt LINE BOT-Erstellung zurück
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Wenn Sie beim Erstellen von Pycocoapi unter Windows nicht weiterkommen
Wenn Sie süchtig nach Pip sind, installieren Sie dlib unter OSX
Lösung, wenn Heroku bei Verwendung von Selen abstürzt
[LINE Messaging API] Erstellen Sie einen Papageienrückgabe-BOT mit Python
Ich erhalte [Fehler 2055], wenn ich versuche, mit Heroku eine Verbindung zu MySQL herzustellen