Dieser Artikel enthält die folgenden zwei Voraussetzungen.
Persönlich ist das offizielle SDK der LINE Messaging API schwierig zu verwenden. https://github.com/line/line-bot-sdk-python
Aus diesem Grund habe ich einen Wrapper namens "pylinebot" erstellt, damit auch Anfänger der Programmierung problemlos mit LINE BOT umgehen können. https://github.com/nanato12/pylinebot
Ich habe es in diesem Artikel geschrieben, bitte beziehen Sie sich darauf.
Dieser Artikel verwendet "Flask".
Django
ist OK.
$ pip install flask
$ pip install pylinebot
Laden Sie es über den unten stehenden Link herunter und stellen Sie es so ein, dass Sie ngrok
verwenden können.
https://ngrok.com/
$ ngrok version
ngrok version 2.3.35
Grundform der Bot-Herstellung! Vorerst habe ich das Gefühl, dass ich es zurück schaffen werde.
Die Verzeichnisstruktur ist wie folgt.
linebot ┠ app.py ┗ op.py
Nur das! Klingt einfach, nicht wahr?
Mit channel_access_token
Geben Sie das "channel_secret" Ihres Bots ein.
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)
#Für 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'
#Zum Verbindungstest
@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)
Lassen Sie uns app.py ausführen.
$ 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
Hat es so angefangen?
Lassen Sie uns mit ngrok
in einem anderen Tab veröffentlichen.
$ 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
Verwenden Sie die URL "https".
Da / test
für den Verbindungstest verwendet wird, in meinem Browser
Stellen Sie eine Verbindung zu "https: // 70fc9cf8b47c.ngrok.io / test" her.
Das Wort ** OK ** wird im Browser angezeigt, Es ist in Ordnung, wenn es auf jeder Konsole so angezeigt wird.
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
Gehen Sie hier und wählen Sie einen Kanal für die LINE Messaging API aus. https://developers.line.biz/console/
Von ** Messaging API **> ** Webhook-Einstellung ** Geben Sie die Webhook-URL ein.
Klicken Sie auf ** Überprüfen ** und wenn ** Erfolg ** angezeigt wird, ist dies in Ordnung.
Ich werde es tatsächlich senden.
Perfekt ✨
Zusätzlich zur Textantwort können Sie problemlos Videos, Bilder, schnelle Antworten usw. senden, sodass ich sie beim nächsten Mal erläutern werde.
Es gibt auch eine Beispielquelle auf Github von Pylinebot, also möchten Sie vielleicht einen Blick darauf werfen. https://github.com/nanato12/pylinebot/tree/master/sample
Nanato wenn Twitter: @nanato12_dev Email: [email protected] Blog: https://blog.nanato12.info GitHub: https://github.com/nanato12
Recommended Posts