[Super facile] Faisons un LINE BOT avec Python.

1.Tout d'abord

Cet article est rédigé avec les deux conditions préalables suivantes.

--Facile à comprendre même pour les débutants ―― Soyez mince et concis

2. Aperçu

Personnellement, le SDK officiel de l'API LINE Messaging est difficile à utiliser. https://github.com/line/line-bot-sdk-python

Par conséquent, j'ai créé un wrapper appelé pylinebot pour que même les débutants en programmation puissent facilement gérer LINE BOT. https://github.com/nanato12/pylinebot

3. Préparation préalable (éléments nécessaires)

3.1 Création et configuration d'un compte LINE pour BOT

Je l'ai écrit dans cet article, alors veuillez vous y référer.

[Pour les débutants] Création / paramétrage de compte officiel LINE pour créer LINE BOT
https://qiita.com/nanato12/items/25e2db9461bb6ac2b8c5

3.2 Installation du package

Cet article utilise «Flask». Django est OK.

$ pip install flask
$ pip install pylinebot

3.3 Configuration de ngrok

Téléchargez-le à partir du lien ci-dessous et configurez-le pour pouvoir utiliser ngrok https://ngrok.com/

$ ngrok version
ngrok version 2.3.35

4. Faisons un bot

Forme de base de la création de robots! Pour le moment, je sens que je vais y arriver.

La structure des répertoires est la suivante.

linebot  ┠ app.py  ┗ op.py

Seulement ça! Cela semble facile, n'est-ce pas?

4.1 Ecrire le code

Avec channel_access_token Entrez le channel_secret de votre Bot.

app.py


from flask import Flask, request
from pylinebot import LINE, Tracer

from op import receive_message

DEBUG = True

app = Flask(__name__)

bot = LINE(
    channel_access_token='XXXXXXXXXXXXXXXXXXX',
    channel_secret='XXXXXXXXX'
)
tracer = Tracer(bot, debug=DEBUG)
tracer.add_event('message', receive_message)

#Pour les webhooks
@app.route("/", methods=['POST'])
def hello():
    signature = request.headers['X-Line-Signature']
    body = request.get_data(as_text=True)
    tracer.trace(body, signature)
    return 'OK'

#Pour le test de connexion
@app.route("/test", methods=['GET'])
def test():
    return 'OK'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000, debug=DEBUG)

op.py


def receive_message(bot, event):
    message = event.message
    message_type = message.type

    if message_type == 'text':
        message_text = message.text
        bot.reply_text_message(message_text)

### 4.2 Exécuter et publier et tester

Lançons app.py.

$ python3 app.py
# * Serving Flask app "app" (lazy loading)
# * Environment: production
#   WARNING: This is a development server. Do not use it in a production deployment.
#   Use a production WSGI server instead.
# * Debug mode: on
# * Running on http://0.0.0.0:3000/ (Press CTRL+C to quit)
# * Restarting with stat
# * Debugger is active!
# * Debugger PIN: 984-300-804

Est-ce que ça a commencé comme ça?
Publions en utilisant ngrok dans un autre onglet.

$ ngrok http 3000
#ngrok by @inconshreveable                           (Ctrl+C to quit)
                                                                    
# Session Status                online                                
# Session Expires               7 hours, 58 minutes                   
# Version                       2.3.35                                
# Region                        United States (us)                    
# Web Interface                 http://127.0.0.1:4040                 
# Forwarding                    http://70fc9cf8b47c.ngrok.io -> http:/
# Forwarding                    https://70fc9cf8b47c.ngrok.io -> http:
                                                                    
# Connections                   ttl     opn     rt1     rt5     p50   
#                               0       0       0.00    0.00    0.00 

Utilisez l'URL https.
Puisque / test est utilisé pour le test de connexion, dans mon navigateur Connectons-nous à https: // 70fc9cf8b47c.ngrok.io / test.

Le mot ** OK ** s'affiche dans le navigateur, C'est OK s'il est affiché comme ça sur chaque console.

python3_app.py


127.0.0.1 - - [25/Jun/2020 08:19:04] "GET /test HTTP/1.1" 200 -

ngrok_http_3000


HTTP Requests                                                       
-------------                                                       
                                                                    
GET /test                      200 OK                      

4.3 Paramètres du Webhook

Allez ici et sélectionnez un canal pour l'API de messagerie LINE. https://developers.line.biz/console/

À partir de ** API de messagerie **> ** Paramètre Webhook ** Saisissez l'URL du webhook.

webhooksetting

Cliquez sur ** Vérifier ** et si ** Réussite ** apparaît, c'est OK.

success

4.4 Contrôle de fonctionnement

Je vais effectivement l'envoyer.

Capture d'écran 2020-06-25 17.21.15.png

Parfait ✨

5. Conclusion

En plus de la réponse textuelle, vous pouvez facilement envoyer des vidéos, envoyer des images, des réponses rapides, etc., donc je les expliquerai la prochaine fois.

Il existe également un exemple de source sur github de pylinebot, vous voudrez peut-être y jeter un coup d'œil. https://github.com/nanato12/pylinebot/tree/master/sample

Nanato quand Twitter: @nanato12_dev Email: [email protected] Blog: https://blog.nanato12.info GitHub: https://github.com/nanato12

Recommended Posts

[Super facile] Faisons un LINE BOT avec Python.
Faisons une interface graphique avec python.
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
Faisons un graphe avec python! !!
Faisons un jeu de shiritori avec Python
Créez un framework Web avec Python! (1)
Créez un framework Web avec Python! (2)
Créer un bot Twitter Trend avec heroku + Python
Créer un LINE BOT avec Minette pour Python
Remplaçons UWSC par Python (5) Faisons un robot
Créer un bot LINE WORKS avec Amazon Lex
Faisons un robot Discord.
Les débutants en Python ont décidé de créer un bot LINE avec Flask (commentaire approximatif de Flask)
Créer un LINE BOT (chat)
Faites une loterie avec Python
Faire un bot d'analyse morphologique de manière lâche avec LINE + Flask
[Jouons avec Python] Créer un livre de comptes de ménage
Essayez de créer un jeu simple avec Python 3 et iPhone
J'ai essayé de faire LINE BOT avec Python et Heroku
Si vous voulez créer un bot discord avec python, utilisons un framework
[Python] Créez votre propre bot LINE
Créer un système de recommandation avec python
Faisons un spacon avec xCAT
Créons un client de socket Web avec Python. (Authentification par jeton d'accès)
Créez un bot LINE avec GoogleAppEngine / py. Version nue simple
Créons un bot LINE en utilisant divers services [ngrok edition]
[Python] Test super facile avec instruction assert
Rendez les applications GUI super faciles avec tkinter
Créons un groupe gratuit avec Python
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Faisons un langage simple avec PLY 1
[Python] Rendons matplotlib compatible avec le japonais
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
Faisons une IA à trois yeux avec Pylearn 2
Faisons un calcul de combinaison avec Python
Faisons une discussion WEB en utilisant WebSocket avec AWS sans serveur (Python)!
Créez une application de bureau avec Python avec Electron
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
[Ev3dev] Faisons un programme de contrôle à distance par Python avec le protocole RPyC
J'ai fait un robot de remplacement de tampon avec une ligne
Envoyer un message à LINE avec Python (LINE Notify)
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
LINE BOT avec Python + AWS Lambda + API Gateway
J'ai créé un Bot LINE avec Serverless Framework!
Étapes pour créer un bot Twitter avec Python
Essayez de créer un groupe de dièdre avec Python
Lire ligne par ligne à partir d'un fichier avec Python
Made Mattermost Bot avec Python (+ Flask)
Créer un LINE BOT
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
J'ai fait un Twitter BOT avec GAE (python) (avec une référence)
J'ai créé un bot de livre de compte de ménage avec LINE Bot
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Faisons un outil de veille de commande avec python
Faisons un Makefile et construisons-le (super débutant)