[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe

Es ist lange her, aber ich habe mich plötzlich entschlossen, einen LINE Bot zu erstellen. Ich habe gerade einen LINE Bot gemacht, der Papageien zurückgibt. スクリーンショット 2020-05-12 20.39.28.png

1. Erstellen Sie einen Line Messaging-API-Kanal

Erstellen Sie einen Kanal mit LINE-Entwicklern

Grundsätzlich sollten Sie sich gemäß der offiziellen Seite unten problemlos registrieren können [So verwenden Sie die Messaging-API | LINE-Entwickler](https://developers.line.biz/ja/docs/messaging-api/getting-started/#%E3%83%81%E3%83%A3%E3 % 83% 8D% E3% 83% AB% E3% 81% AE% E4% BD% 9C% E6% 88% 90)

![Screenshot 2020-05-12 20.48.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130414/83b70611-c51f-d7f0-ca71 -6389eac33f13.png)

Wenn der Kanal sicher registriert werden kann, befindet er sich in einem Zustand wie ↓ スクリーンショット 2020-05-12 20.58.26.png

Überprüfen Sie die folgenden beiden, da Sie sie später benötigen ・ Kanalgeheimnis ← Befindet sich auf der Registerkarte Grundeinstellung ・ Kanalzugriffstoken (langlebig) ← Befindet sich auf der Registerkarte Messaging-API

2.Heroku

Ein Konto erstellen

Grundsätzlich sollten Sie sich gemäß der offiziellen Seite unten problemlos registrieren können Heroku Dev Center

![Screenshot 2020-05-12 21.14.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130414/add1067e-c321-8ba2-a348 -3dcf648916be.png)

Laden Sie die Heroku CLI herunter

Laden Sie die Heroku CLI von der folgenden Seite herunter und installieren Sie sie The Heroku CLI | Heroku Dev Center

![Screenshot 2020-05-12 21.21.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130414/a3ee0f63-8bb9-a06e-418e -27c04e72a1b5.png)

Wenn die Installation erfolgreich abgeschlossen wurde, sollten Sie den Befehl heroku im Terminal verwenden können. スクリーンショット 2020-05-12 21.24.23.png

3. Erstellen Sie eine Datei für die Bereitstellung

Dateistruktur

Erstellen Sie eine Datei mit der folgenden Konfiguration スクリーンショット 2020-05-12 21.29.07.png

main.py Der Hauptteil des Programms

main.py


# -*- coding: utf-8 -*-
#  Licensed under the Apache License, Version 2.0 (the "License"); you may
#  not use this file except in compliance with the License. You may obtain
#  a copy of the License at
#
#       https://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#  License for the specific language governing permissions and limitations
#  under the License.

import os
import sys
from argparse import ArgumentParser

from flask import Flask, request, abort
from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage,
)

app = Flask(__name__)

# get channel_secret and channel_access_token from your environment variable
channel_secret = os.getenv('LINE_CHANNEL_SECRET', None)
channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
if channel_secret is None:
    print('Specify LINE_CHANNEL_SECRET as environment variable.')
    sys.exit(1)
if channel_access_token is None:
    print('Specify LINE_CHANNEL_ACCESS_TOKEN as environment variable.')
    sys.exit(1)

line_bot_api = LineBotApi(channel_access_token)
handler = WebhookHandler(channel_secret)


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

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

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

    return 'OK'


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


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

Procfile So führen Sie das Programm aus

web: python main.py

requirements.txt Zu verwendendes Modul

Flask==0.12.2
line-bot-sdk==1.8.0

runtime.txt Gelistete Python-Version

python-3.6.6

4. In Heroku bereitstellen

Erstellen Sie ein Git-Repository und legen Sie fest

Führen Sie den folgenden Befehl von einem Terminal usw. aus.

$ cd line-bot
$ git init
$ git config user.name "Name"
$ git config user.E-Mail-Adresse
$ git add .
$ git commit -m "Kommentar"

$ cd line-bot: In das Stammverzeichnis wechseln $ git init: Initialisiert das Git-Repository $ git config user.name "name": config config $ git config user.email E-Mail-Adresse: Konfigurationseinstellungen $ git add.: Add $ git commit -m "Kommentar": Festschreiben

Melden Sie sich bei Heroku an

Führen Sie den folgenden Befehl aus, um sich bei Heroku anzumelden

$ heroku login

Wenn Sie es ausführen, befindet es sich im folgenden Zustand. Wenn Sie also eine beliebige Taste drücken, wird der Anmeldebildschirm im Browser angezeigt Klicken Sie auf die Schaltfläche Anmelden, um sich anzumelden スクリーンショット 2020-05-12 21.46.31.png スクリーンショット 2020-05-12 21.46.39.png

Erstellen und Bereitstellen einer Anwendung

Führen Sie den folgenden Befehl aus, um eine Anwendung auf Heroku zu erstellen und bereitzustellen

$Heroku erstellen Anwendungsnamen
$ heroku config:set LINE_CHANNEL_SECRET="Channel Secret" --Name der App-Anwendung
$ heroku config:set LINE_CHANNEL_ACCESS_TOKEN="Zugangstoken" --Name der App-Anwendung
$ git push heroku master

Der Name der Anwendung ist beliebig Stellen Sie das "Kanalgeheimnis" und das "Zugriffstoken" ein, die bestätigt wurden, als der Kanal mit LINE-Entwicklern erstellt wurde.

Build Pack-Einstellungen

Die Bereitstellung kann fehlschlagen, wenn das Build Pack nicht festgelegt ist. Führen Sie in diesem Fall den folgenden Befehl aus, um das Build Pack festzulegen

$ heroku buildpacks:set heroku/python

5. Webhook-Einstellungen auf der LINE Bot-Seite

Legen Sie die Webhook-Einstellungen für den Kanal fest, der über die Line Developers-Konsole erstellt wurde Verwenden Sie den Webhook und geben Sie die folgende URL als Webhook-URL an

https://Anwendungsname.herokuapp.com/callback

Komplett

Wenn die Arbeit bis zu diesem Punkt abgeschlossen ist, ist der Bot, der den Papagei zurückgibt, abgeschlossen! Ich war ein Anfänger, der noch nie Heroku, Git oder Messaging API verwendet hatte, aber es war überraschend einfach zu erstellen. Ich wünschte, ich könnte in Zukunft etwas daraus machen スクリーンショット 2020-05-12 22.16.00.png

Recommended Posts

[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
[LINE Messaging API] Erstellen Sie einen Papageienrückgabe-BOT mit Python
Erstellen Sie mit Minette für Python einen LINE BOT
Papagei gibt LINE BOT-Erstellung zurück
Lassen Sie einen Papagei LINE Bot mit AWS Cloud9 zurückgeben
Erstellen Sie mit Django einen LINE-Bot
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Erstellen Sie ein Python-Modul
Erstellen Sie eine Python-Umgebung
Erstellen Sie einen Slack Bot
Schritte zum Erstellen eines Twitter-Bots mit Python
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Erstellen Sie ein Wörterbuch in Python
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Machen Sie einen LINE BOT (Chat)
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
Erstellen Sie ein Python-Numpy-Array
Erstellen Sie ein Verzeichnis mit Python
[Super einfach] Machen wir einen LINE BOT mit Python.
Erstellen Sie eine App für maschinelles Lernen mit ABEJA Platform + LINE Bot
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
Bis Django etwas mit einem Linienbot zurückgibt!
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Ich möchte eine Nachricht von Python an LINE Bot senden
Erstellen Sie mit tkinter eine Python-GUI
Erstellen Sie einen DI-Container mit Python
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen Sie eine Binärdatei in Python
Erstellen Sie eine Python-Umgebung in Centos
Erstellen Sie ein universelles Dekorationsframework für Python
[Python] gibt A [oder / und] B zurück
[LINE Bot] Ich bin ein Ranger! Teil 2
5 Möglichkeiten zum Erstellen eines Python-Chatbots
Erstellen Sie eine zufällige Zeichenfolge in Python
[Python] Ich habe einen Line-Bot erstellt, der zufällig nach englischen Wörtern fragt
Erstellen Sie ein Befehlszeilenprogramm, um mit Python Dollar in Yen umzurechnen
Erstellen Sie mit Class einen Python-Funktionsdekorator
Erstellen Sie einen Bot, um Corona-Virus-Informationen zu retweeten
Erstellen Sie ein neues numerisches Python-Berechnungsprojekt
Erstellen Sie mit Python + PIL ein Dummy-Image.
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Erstellen Sie eine einfache GUI-App in Python
Erstellen wir eine virtuelle Umgebung für Python
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen eines LINE-Bots ~ Erstellen, Bereitstellen und Starten von ~
Erstellen wir mit Python eine kostenlose Gruppe
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Erstellen Sie eine Deb-Datei aus einem Python-Paket
[Python] Erstellen Sie einen LineBot, der regelmäßig ausgeführt wird
[GPS] Erstellen Sie eine kml-Datei mit Python
Erstellen Sie einen Bot, der Twitter-Trends verstärkt
Machen wir einen Twitter-Bot mit Python!
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
Ich habe einen Stempelersatzbot mit Linie gemacht
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste