Erstelle einen LINE-Bot mit Python + Heroku

Einführung

Dieses Mal werde ich mit Python und Heroku einen Return-Bot erstellen. Dieser Artikel richtet sich an Personen, die eine gute Umgebung für Python3 und Homebrew haben. Wenn Sie noch keine Umgebung haben https://ai-inter1.com/python-install/ https://qiita.com/balius_1064/items/ac7dff5ef10eaf69996f Bitte beachten Sie den Artikel etc.

Entwicklungsumgebung

LINE Entwicklereinstellungen

Melden Sie sich zunächst mit Ihrem LINE-Konto bei LINE Developers an. スクリーンショット 2020-05-09 13.10.51.jpg

Wenn Sie sich anmelden, wird der Registrierungsbildschirm für das Entwicklerkonto angezeigt.

Wenn die Kontoregistrierung abgeschlossen ist スクリーンショット 2020-05-09 13.14.17.jpg

Eine Seite wie diese wird angezeigt. Klicken Sie auf Neuen Anbieter erstellen. Wenn Sie den Anbieternamen eingeben スクリーンショット 2020-05-09 13.16.31.jpg

Wird angezeigt, wählen Sie die Messaging-API aus. スクリーンショット 2020-05-09 13.17.40.jpg Wenn dieser Bildschirm angezeigt wird, --Kanal Name --Kanal Beschreibung

Installation von Line-Bot-SDK und Kolben

pip install flask
pip install line-bot-sdk

Führen Sie die beiden oben genannten Schritte mit line-bot-sdk und flask aus. /) Ist installiert.

mkdir line-bot
cd line-bot

Öffnen Sie dann ein Terminal, erstellen Sie ein Verzeichnis für den Linebot und wechseln Sie in dieses Verzeichnis.

Erstellen Sie eine Konfigurationsdatei

runtime.txt


python-3.7.3

requirements.txt


Flask==1.1.1
line-bot-sdk==1.8.0

Procfile


web: python main.py

--runtime.txt ・ ・ ・ Die Python-Version wird beschrieben --requirements.txt ・ ・ ・ Beschreiben Sie die zu installierende Bibliothek --Procfile ・ ・ ・ Beschreibt die Ausführung des Programms

Sobald Sie sich eingerichtet haben, ist es Zeit, ein Python-Programm zu erstellen.

main.py


#Bibliothek importieren
from flask import Flask, request, abort
from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    FollowEvent, MessageEvent, TextMessage, TextSendMessage, ImageMessage, ImageSendMessage, TemplateSendMessage, ButtonsTemplate, PostbackTemplateAction, MessageTemplateAction, URITemplateAction
)
import os
#Leichtes Webanwendungsframework:Flask
app = Flask(__name__)

#LINE Acces Token
LINE_CHANNEL_ACCESS_TOKEN = "LINE_CHANNEL_ACCESS_TOKEN"
#LINE Channel Secret
LINE_CHANNEL_SECRET = "LINE_CHANNEL_SECRET"

line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)

@app.route("/callback", methods=['POST'])
def callback():
    signature = request.headers['X-Line-Signature']

    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)

    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        abort(400)

    return 'OK'

@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
	line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=event.message.text )
     )

if __name__ == "__main__":
    port = os.getenv("PORT")
    app.run(host="0.0.0.0", port=port)

Erstellen Sie main.py wie folgt.

#LINE Acces Token
LINE_CHANNEL_ACCESS_TOKEN = "LINE_CHANNEL_ACCESS_TOKEN"
#LINE Channel Secret
LINE_CHANNEL_SECRET = "LINE_CHANNEL_SECRET"

Wechseln Sie für den Teil LINE-Zugriffstoken und LINE-Kanalgeheimnis zur Einstellungsseite für den LINE-Bot-Kanal, die Sie zuerst erstellt haben, überprüfen Sie Ihre eigenen und kopieren Sie sie und fügen Sie sie ein. スクリーンショット 2020-05-09 13.56.16.jpg スクリーンショット 2020-05-09 13.56.42.jpg

Heroku-Einstellungen

Bitte registrieren Sie sich zunächst unter Heroku. (Es war schwer für mich, der nicht gut Englisch kann) Klicken Sie nach Abschluss der Registrierung auf Neue App erstellen, um die App zu erstellen. スクリーンショット 2020-05-09 14.10.55.jpg Der App-Name, den Sie zu diesem Zeitpunkt eingeben, sollte nicht mit anderen Personen geteilt werden. Überlegen Sie daher bitte genau. スクリーンショット 2020-05-09 14.11.15.jpg Geben Sie nach dem Erstellen der App die in Domains of Setting with / callback geschriebene URL in die Webhook-Einstellung der LINE Messaging-API ein. スクリーンショット 2020-05-09 14.15.34.jpg スクリーンショット 2020-05-09 14.17.25.jpg

Dann am Terminal

brew install heroku

Bitte führen Sie die. Als nächstes einrichten, um zu Heroku zu schieben.

heroku login

Drücken Sie die Eingabetaste, um den Browser zu starten. Bitte geben Sie die E-Mail-Adresse und das Passwort ein, die Sie zuvor registriert haben, um sich anzumelden.

Logged in as [registrierte Emailadresse]

Wird angezeigt, ist es erfolgreich.

git init

heroku git:remote -a (App Name)

git add .

git commit -m "first commit"

git push heroku master

Wenn Sie die obigen Befehle der Reihe nach ausführen, wird die Bereitstellung abgeschlossen. Bei Herokus Aktivität スクリーンショット 2020-05-09 14.50.17.jpg Wenn Build erfolgreich angezeigt wird, ist dies erfolgreich.

Umgebungsvariablen einstellen

heroku config:set LINE_CHANNEL_ACCESS_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXX

heroku config:set LINE_CHANNEL_SECRET=XXXXXXXXXXXXXXXXXXXXX

Führen Sie als Nächstes die beiden oben genannten Schritte im Terminal aus, um die Umgebungsvariablen festzulegen. Dies ist dasselbe wie das zuvor in main.py eingegebene LINE-Zugriffstoken und LINE-Kanalgeheimnis. Kopieren Sie es also und führen Sie es aus.

Komplett

Senden wir entsprechende Zeichen an den Bot, den Sie zuvor mit Ihrer LINE-App hinzugefügt haben! Wenn Sie den gleichen Inhalt wie die von Ihnen gesendeten Zeichen erhalten, sind Sie erfolgreich. hoge.jpg

Wenn Sie es lesen können, es aber nicht funktioniert, gehen Sie zum Terminal

heroku logs --tail

Wenn Sie eingeben, können Sie das Protokoll in Echtzeit sehen. Bitte untersuchen Sie dort die Ursache. (Oft hat die LINE-Messaging-API Webhooks deaktiviert.)

Zusammenfassung

Dieses Mal habe ich einen LINEbot erstellt, der Ihnen etwas zurückgibt, aber Sie können diesen Quellcode verbessern und Ihren eigenen LINEbot erstellen! Außerdem Rich Menu und LIFF App Es ist auch möglich, einen luxuriöseren LINE-Bot zu erstellen, indem Sie liff / development-liff-apps /) hinzufügen. Bitte versuchen Sie das auch!

Referenz

https://developers.line.biz/ja/docs/messaging-api/ https://github.com/line/line-bot-sdk-python

Recommended Posts

Erstelle einen LINE-Bot mit Python + Heroku
Starten Sie die Umgebung mit LineBot + Heroku + Docker + Python
Machen Sie Twitter Trend Bot mit Heroku + Python
Erstelle Puyopuyo AI mit Python
Machen Sie eine Lotterie mit Python
Machen Sie Apache Log CSV mit Python
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen Sie ein Empfehlungssystem mit Python
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen Sie die Python-Konsole mit UNKO bedeckt
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Ich habe Linebot mit Flasche (Anaconda) + Heroku ausprobiert
Fraktal zum Erstellen und Spielen mit Python
Lassen Sie Heroku die Hintergrundverarbeitung mit Python durchführen
Lassen Sie uns mit Python langsam sprechen
Erleichtern Sie die Einreichung von Pypys mit atcoder-cli (Python)
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Einfache Web-App mit Python + Flask + Heroku
Erstellen Sie ein Webframework mit Python! (1)
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
LINE Heroku Python
Bingo mit Python
Zundokokiyoshi mit Python
LINE-Bot [0] in Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Hochladen mit Heroku, Flask, Python, Git (4)
Pyinstaller verwandelt Python-Skripte in EXE-Dateien, die unter Windows ausgeführt werden können
Ich möchte ein Spiel mit Python machen
Vorgehensweise zum Erstellen eines mit Python erstellten LineBot
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Stellen Sie OpenCV3 in Python3 zur Verfügung, das mit pyenv installiert wurde
Erstellen Sie schnell Ihr eigenes Modul mit setuptools (Python)
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Bis zur Verwendung von PhantomJS mit Python auf Heroku
[Python] Ausdruck (1,2) macht kein Taple mit Klammern
Konvertieren Sie JSON mit Python von Splunk in CSV
Lassen Sie Python, das mit jhbuild erstellt wurde, unter OSX funktionieren
[# 1] Mach Minecraft mit Python. ~ Vorforschung und Design ~
Serielle Kommunikation mit Python
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Zip, entpacken mit Python