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.
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 ↓
Ü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
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 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.
Erstellen Sie eine Datei mit der folgenden Konfiguration
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
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
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
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.
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
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
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
Recommended Posts