Cet article est rédigé avec les deux conditions préalables suivantes.
--Facile à comprendre même pour les débutants ―― Soyez mince et concis
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
Je l'ai écrit dans cet article, alors veuillez vous y référer.
Cet article utilise «Flask».
Django
est OK.
$ pip install flask
$ pip install pylinebot
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
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?
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)
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
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.
Cliquez sur ** Vérifier ** et si ** Réussite ** apparaît, c'est OK.
Je vais effectivement l'envoyer.
Parfait ✨
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