[Super einfach] Machen wir einen LINE BOT mit Python.

1. Zuallererst

Dieser Artikel enthält die folgenden zwei Voraussetzungen.

2. Übersicht

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

3. Vorbereitungen (notwendige Punkte)

3.1 Erstellen und Einrichten eines LINE-Kontos für BOT

Ich habe es in diesem Artikel geschrieben, bitte beziehen Sie sich darauf.

[Für Anfänger] Erstellung / Einstellung eines offiziellen LINE-Kontos zum Erstellen eines LINE BOT
https://qiita.com/nanato12/items/25e2db9461bb6ac2b8c5

3.2 Paketinstallation

Dieser Artikel verwendet "Flask". Django ist OK.

$ pip install flask
$ pip install pylinebot

3.3 ngrok setup

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

4. Machen wir einen Bot

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?

4.1 Schreiben Sie den Code

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)

### 4.2 Ausführen & Veröffentlichen & Testen

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                      

4.3 Webhook-Einstellungen

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.

webhooksetting

Klicken Sie auf ** Überprüfen ** und wenn ** Erfolg ** angezeigt wird, ist dies in Ordnung.

success

4.4 Funktionsprüfung

Ich werde es tatsächlich senden.

Screenshot 2020-06-25 17.21.15.png

Perfekt ✨

5. Schlussfolgerung

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

[Super einfach] Machen wir einen LINE BOT mit Python.
Lassen Sie uns eine GUI mit Python erstellen.
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie ein Webframework mit Python! (1)
Erstellen Sie ein Webframework mit Python! (2)
Machen Sie Twitter Trend Bot mit Heroku + Python
Erstellen Sie mit Minette für Python einen LINE BOT
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Erstellen Sie mit Amazon Lex einen LINE WORKS-Bot
Machen wir einen Discord Bot.
Python-Anfänger haben beschlossen, einen LINE-Bot mit Flask zu erstellen (Flask-Kommentar)
Machen Sie einen LINE BOT (Chat)
Machen Sie eine Lotterie mit Python
Machen Sie mit LINE + Flask einen morphologischen Analyse-Bot
[Lass uns mit Python spielen] Ein Haushaltsbuch erstellen
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
[Python] Erstelle deinen eigenen LINE-Bot
Erstellen Sie ein Empfehlungssystem mit Python
Machen wir mit xCAT einen Spacon
Lassen Sie uns mit Python einen Web-Socket-Client erstellen. (Zugriffstoken-Authentifizierung)
Erstellen Sie mit GoogleAppEngine / py einen LINE-Bot. Einfache nackte Version
Lassen Sie uns einen LINE-Bot mit verschiedenen Diensten erstellen [ngrok edition]
[Python] Super einfacher Test mit Assert-Anweisung
Machen Sie GUI-Apps mit tkinter ganz einfach
Erstellen wir mit Python eine kostenlose Gruppe
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Machen wir mit Pylearn 2 eine dreiäugige KI
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Lassen Sie uns einen Web-Chat mit WebSocket mit AWS serverless (Python) durchführen!
Erstellen Sie eine Desktop-App mit Python mit Electron
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
[Ev3dev] Lassen Sie uns ein Fernsteuerungsprogramm von Python mit dem RPyC-Protokoll erstellen
Ich habe einen Stempelersatzbot mit Linie gemacht
Senden Sie eine Nachricht mit Python an LINE (LINE Notify)
Ich möchte ein Spiel mit Python machen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
LINE BOT mit Python + AWS Lambda + API Gateway
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Schritte zum Erstellen eines Twitter-Bots mit Python
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Lesen Sie mit Python Zeile für Zeile aus der Datei
Mattermost Bot mit Python gemacht (+ Flask)
Machen Sie einen LINE BOT
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Ich habe einen Twitter BOT mit GAE (Python) gemacht (mit einer Referenz)
Ich habe mit LINE Bot ein Haushaltsbuch für Bot erstellt
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Lass uns ein Makefile machen und es bauen (super Anfänger)