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.
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.
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.
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.Après avoir ajouté le code faisant référence à cet article, la demande du bouton Vérifier est désormais acceptée.
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.
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.
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é.
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