Créer un LINE BOT avec Minette pour Python

En parlant de BOT au Japon, il s'agit probablement de LINE BOT. Ici, nous allons vous présenter comment le créer en utilisant Minette pour Python, un framework d'application BOT.

Choses à préparer à l'avance

--Channel Secret et Channel Access Token of LINE Messaging API --docomo API key for chat API (facultatif. Dans ce cas, il s'agira d'un BOT de retour)

Installation de bibliothèques dépendantes

Installez le pytz et les demandes nécessaires au fonctionnement de Minette, ainsi que le flacon de cadre d'application Web et le kit de développement LINE SDK requis pour lancer le point de terminaison LINE. Si vous l'avez déjà installé, vous pouvez ignorer cette étape.

$ pip install pytz
$ pip install requests
$ pip install Flask
$ pip install line-bot-sdk

Installation de Minette

Comme le titre l'indique, nous utiliserons le framework BOT Minette. Pour plus d'informations sur Minette, veuillez consulter les articles suivants.

L'installation est OK avec une seule commande pip.

$ pip install minette

Vérifions le fonctionnement avec Umu-return BOT.

$ minette
user> hello
minette> You said: hello

Publication sur Internet

Étant donné que l'entrée de l'API de messagerie LINE est conçue pour atteindre le webhook spécifié par le développeur et transmettre un message, il est nécessaire de rendre la machine exécutant Minette accessible depuis Internet.

Je pense qu'il existe différentes méthodes, mais ici, je vais expliquer la procédure en utilisant ngrok, qui semble facile et facile.

installation de ngrok

En gros, ngrok est un outil de routage et de tunneling (reconnaissance) qui prend en charge différents protocoles. Pour plus de détails, voir ngrok official, et téléchargez et décompressez le binaire en fonction de la plate-forme depuis la page de téléchargement.

Lorsque vous le décompressez, un fichier exécutable avec le nom ngrok apparaîtra, alors cliquez sur celui-ci comme suit. Si vous l'exécutez normalement, vous ne pourrez plus travailler après cela, donc j'essaye de l'exécuter en arrière-plan.

$ ./ngrok http 5050 -log=stdout > ngrok.log &

Vérifiez l'URL Internet et vérifiez le fonctionnement.

$ curl http://localhost:4040/api/tunnels

{"tunnels":[{"name":"command_line","uri":"/api/tunnels/command_line","public_url":"https://abcd1234.ngrok.io","proto":"https","config":{"addr":"localhost:5050","inspect":true},"metrics":{"conns":{"count":0,"gauge":0,"rate1":0,"rate5":0,"rate15":0,"p50":0,"p90":0,"p95":0,"p99":0},"http":{"count":0,"rate1":0,"rate5":0,"rate15":0,"p50":0,"p90":0,"p95":0,"p99":0}}},{"name":"command_line (http)","uri":"/api/tunnels/command_line+%28http%29","public_url":"http://abcd1234.ngrok.io","proto":"http","config":{"addr":"localhost:5050","inspect":true},"metrics":{"conns":{"count":0,"gauge":0,"rate1":0,"rate5":0,"rate15":0,"p50":0,"p90":0,"p95":0,"p99":0},"http":{"count":0,"rate1":0,"rate5":0,"rate15":0,"p50":0,"p90":0,"p95":0,"p99":0}}}],"uri":"/api/tunnels"} 

Les informations ont été renvoyées d'affilée, mais comme https: // abcd1234.ngrok.io affiché dans l'élément de public_url est l'URL pour accéder au Raspberry Pi émis par ngrok, ce Notez-le en le copiant.

Définir sur l'URL du webhook des développeurs LINE

Définissez / api de l'URL (ou l'URL de l'environnement d'exécution lui-même) émis par ngrok plus tôt.

Webhook URLの設定

C'est comme ça. Notez que le service n'a pas encore été démarré, donc même si vous appuyez sur Vérifier, il échouera.

Lancé en tant que point de terminaison pour l'API de messagerie LINE

La commande minette vous permet de lancer un exemple d'implémentation du point de terminaison de l'API de messagerie LINE en plus de l'API Web générique.

Tout d'abord, définissez les informations relatives à l'authentification requises pour utiliser l'API de messagerie LINE dans les variables d'environnement.

$ export LINE_CHANNEL_SECRET="Le secret de votre chaîne"
$ export LINE_ACCESS_TOKEN="Votre jeton d'accès"

Si vous disposez de la clé API de l'API de chat docomo, vous pouvez la définir comme suit pour en faire un BOT de chat. Si cette étape est omise, elle fonctionnera comme un BOT de retour de la même manière que le contrôle de fonctionnement de Minette.

$ export CHAT_API_KEY="Votre clé API"
$ export DEFAULT_DIALOG_SERVICE="minette.dialog.chat_dialog.ChatDialogService"

Maintenant que vous êtes prêt, commençons le point de terminaison. Ajoutez l'option -l.

$ minette -l

Vérifions l'opération.

Si ça marche comme ça, c'est un succès. Merci pour votre soutien.

Recommended Posts

Créer un LINE BOT avec Minette pour Python
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Créez un Twitter BOT avec le SDK GoogleAppEngine pour Python
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
Étapes pour créer un bot Twitter avec Python
Créer un répertoire avec python
J'ai essayé de faire LINE BOT avec Python et Heroku
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
Créer une couche pour AWS Lambda Python dans Docker
[Super facile] Faisons un LINE BOT avec Python.
[LINE Messaging API] Créer un BOT de retour de perroquet avec Python
Créez un environnement virtuel avec Python!
Créer un bot LINE avec Django
Créez une application d'apprentissage automatique avec ABEJA Platform + LINE Bot
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
Créer un compte enfant de connect with Stripe en Python
[Python] Créer un écran pour le code d'état HTTP 403/404/500 avec Django
Présentation du framework BOT Minette pour Python
Créer un décorateur de fonction Python avec Class
Créons un environnement virtuel pour Python
[Python] Créez un environnement virtuel avec Anaconda
Créons un groupe gratuit avec Python
Créer un compteur de fréquence de mots avec Python 3.4
Faisons un bot Twitter avec Python!
Créer un environnement d'exécution Windows Python avec VScode + Remote WSL
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Créez un sélecteur de couleurs pour la roue chromatique avec Python + Qt (PySide)
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
J'ai fait un robot de remplacement de tampon avec une ligne
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
Envoyer un message à LINE avec Python (LINE Notify)
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
Créer un bot Twitter Trend avec heroku + Python
Les débutants en Python ont décidé de créer un bot LINE avec Flask (commentaire approximatif de Flask)
Créer un module Python
Créez une application de gestion automatique des notes pour Tenho Private Room avec le bot LINE et Python Partie 1
Procédure de création d'un LineBot réalisé avec Python
Créer un environnement virtuel avec conda avec Python
Créer une page qui se charge indéfiniment avec python
[Note] Créez une classe de fuseau horaire sur une ligne avec python
Vous pouvez facilement créer une interface graphique même avec Python
Créer un environnement de construction python3 avec Sublime Text3
LINE BOT avec Python + AWS Lambda + API Gateway
Créez un tableau de bord pour les appareils réseau avec Django!
Créer une barre de couleurs avec Python + Qt (PySide)
Créez une application de gestion automatique des notes pour Tenho Private Room avec le bot LINE et Python Partie 2
J'ai créé un Bot LINE avec Serverless Framework!
Créez une application de gestion automatique des notes pour la salle privée Tenho avec le bot LINE et la partie Python ③
Commandes pour créer un environnement python3 avec virtualenv
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Créer une nouvelle page en confluence avec Python
Créer un widget avec une couleur spécifiée avec Python + Qt (PySide)
Créer un fichier au format Photoshop (.psd) avec python
Créer un environnement Python
Créer un bot LINE WORKS avec Amazon Lex
Facile à créer une application console Python avec Click
Lire ligne par ligne à partir d'un fichier avec Python
Made Mattermost Bot avec Python (+ Flask)
Créer un bot slack
[AWS] J'ai créé un BOT de rappel avec LINE WORKS