[PYTHON] Point de contrôle lorsque le robot de retour LINE Parrot est accro à Heroku

C'est une histoire foirée, mais ** J'ai été confus par les anciennes informations sur le net et je les ai écrasées pendant une demi-journée avec un robot de retour de perroquet **, alors je l'écrirai avec remords.

environnement

Créer un compte ~ Déployer sur Heroku

Tout d'abord, les étapes suivantes ont été effectuées.

Pour les procédures et le code spécifiques, j'ai fait référence aux articles de qiita et aux articles de blog qui apparaissent lors de la recherche de "LINE bot Python". Les articles de blog suivants ont été organisés de manière facile à comprendre dans la référence, je vais donc omettre la procédure détaillée ici.

Créer un bot LINE avec l'API de messagerie LINE + Python + Heroku

Cependant, comme cela sera décrit plus loin, ** les dernières spécifications ne nécessitent pas le paramètre «Fixie» **, donc soyez prudent. (Non limité à cet article de blog, certains articles sont bien classés dans la recherche et écrivent toujours que le paramètre Fixie est obligatoire.)

...... Eh bien, je l'ai implémenté comme ça et j'ai parlé au bot, mais il ne renvoie pas le perroquet.

Point de contrôle 1: contre-mesures contre 500 erreurs qui apparaissent avec le bouton Vérifier sur le Webhook

Lorsque j'ai vérifié en appuyant sur le bouton Vérifier de l'URL du Webhook sur l'écran de gestion des développeurs LINE, le message d'erreur «Le webhook a renvoyé un code d'état HTTP autre que 200» est apparu.

verify.png Vérifiez les journaux avec `heroku logs -t`. main.py (application bot) était en cours d'exécution et semblait renvoyer une erreur 500. Cela semble déterminer que le replyToken envoyé par le bouton Verify n'est pas un replyToken valide. L'article de référence est ci-dessous.

À propos du problème qu'une erreur se produit lors de la vérification de la connexion de l'URL du Webhook des développeurs LINE

Après avoir ajouté le code faisant référence à cet article, la demande du bouton Vérifier est désormais acceptée.

Point de contrôle 2: Activez Utiliser Webhook

Cependant, même si j'envoie «A» ou «Test» sur mon smartphone, le journal ne fonctionne pas du tout. ...... Non, n'est-ce pas trop une erreur? C'est comme ça, mais Utiliser Webhook a été désactivé. Lorsque je l'ai allumé, la demande a été envoyée.

usewebhook.png

Point de contrôle 3: pas besoin de spécifier l'adresse IP dans les dernières spécifications

Mais vous ne pouvez pas vous connecter avec cette adresse IP! J'obtiens l'erreur. Les détails seront décrits dans le "Supplément" ci-dessous, mais une erreur s'est produite car le paramètre Fixie a échoué.

Lorsque vous créez un bot LINE avec Heroku, définissez quand même Fixie! Il y a beaucoup d'articles qui disent, mais comme vous pouvez le voir dans la FAQ officielle ci-dessous, ** Les dernières spécifications ne vous obligent pas à spécifier une adresse IP. Vous n'êtes donc pas obligé d'utiliser Fixie en premier lieu. ** **

FAQ pour les développeurs LINE BOT & Beacon (mise à jour de temps à autre)

Dois-je enregistrer la liste blanche d'adresses IP du serveur?

Pas besoin de s'inscrire.

Si vous souhaitez mettre des restrictions, inscrivez-vous simplement.

Si vous le spécifiez dans l'autre sens, vous ne pourrez accéder qu'à cette adresse IP, donc si vous obtenez une erreur, assurez-vous que la mauvaise adresse IP ne figure pas dans cette liste.

IP.png

Supplément sur le point de contrôle 3

Même si vous répertoriez l'adresse IP sortante de Fixie, ce n'est pas grave si vous pouvez vous connecter correctement à partir de là. Dans mon cas, même si j'ai configuré Fixie, je ne pouvais pas envoyer de requête depuis une IP fixe, et quand je regarde le journal des erreurs

"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."

J'ai eu l'erreur ([*. **. ***. ***] une partie change à chaque fois que je redémarre l'application). Probablement parce que je n'ai pas mis la description pour utiliser le proxy dans le code de l'application bot elle-même.

Ce qui suit est un article de référence pour PHP. Je pense qu'il existe probablement une description équivalente en Python, mais je ne vais pas y entrer cette fois. .. ..

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

La description qui passe par proxy côté PHP était manquante. J'ai défini l'URL du proxy créé par Fixie avec curl_setopt et cela a bien fonctionné.

De côté

Le message par défaut "Merci pour votre message! Désolé, ce compte n'accepte pas les demandes individuelles. Veuillez attendre la prochaine livraison" est le message LINE Official Account Manager Response Settings> Advanced Settings> Il devrait être désactivé le cas échéant dans le message de réponse (je pensais qu'il sortait à cause d'une erreur au début ...).

Recommended Posts

Point de contrôle lorsque le robot de retour LINE Parrot est accro à Heroku
Créer un robot LINE de retour de perroquet avec AWS Cloud9
Création du LINE BOT Parrot Return
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Si vous êtes bloqué lors de la construction de pycocoapi sous Windows
Si vous êtes accro à pip, installez dlib sur OSX
Solution si heroku plante lors de l'utilisation de sélénium
[LINE Messaging API] Créer un BOT de retour de perroquet avec Python
J'obtiens [Erreur 2055] en essayant de me connecter à MySQL avec Heroku