Viele Artikel haben darüber geschrieben, wie man einen Linebot erstellt, aber da ich ein Anfänger war, hatte ich einen Stolperstein, also habe ich das wieder wettgemacht und es mir leicht gemacht, es zu verstehen. Da dies ein Artikel ist, den ich für mich selbst gemacht habe, gibt es viele Punkte, die schwer zu verstehen sind, aber bitte geben Sie Ihr Bestes, während Sie auf andere Artikel verweisen.
$mkdir lineBotTest
$cd lineBotTest
Eingeben 3, starten Sie die Textbearbeitung in der Anwendung 4, wählen Sie das Format in der oberen Leiste aus, wählen Sie Standardtext aus, kopieren Sie Folgendes und fügen Sie es ein Keine Notwendigkeit, 'LINE_CHANNEL_SECRET'etc zu ändern. Kopieren wie es ist
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__)
"""
heroku config:set LINE_CHANNEL_SECRET="Kanalgeheimnis" --App App Name
Wird im Terminal eingegeben, so wird das Kanalgeheimnis jedes Mal automatisch im folgenden Code eingegeben.
Das Zugriffstoken ist das gleiche, sodass es nicht geändert werden muss.
"""
channel_secret = os.getenv('LINE_CHANNEL_SECRET', None)
channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
"""
Null-Kanal-Geheimnis oder Zugriffstoken(nichts)Bearbeitung bei
"""
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)
"""
Holen Sie sich Token usw. aus Heroku-Variablen
"""
line_bot_api = LineBotApi(channel_access_token)
handler = WebhookHandler(channel_secret)
"""
Webhook von LINE
Grundfunktionen, die sich nicht ändern
"""
@app.route("/callback", methods=['POST'])
def callback():
#Rufen Sie den Wert für die Signaturüberprüfung aus dem Anforderungsheader ab
signature = request.headers['X-Line-Signature']
#Anfragetext abrufen
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
#Überprüfen Sie die Signatur und rufen Sie die im Handle definierte Funktion auf, wenn kein Problem vorliegt
try:
handler.handle(body, signature)
except InvalidSignatureError:#Gibt 400 zurück, wenn ein Fehler auftritt
abort(400)
return 'OK'
"""
Massage-Event online(Wenn eine Textnachricht gesendet wird)Wird wann angerufen
line_bot_api.reply_Ereignis des ersten Arguments der Nachricht.reply_Token wird verwendet, um auf Ereignisse zu reagieren
Das zweite Argument ist Linebot.Übergeben Sie das in Modellen definierte TextSendMessage-Objekt zur Antwort
"""
@handler.add(MessageEvent, message=TextMessage)
def message_text(event):
#Was wurde eingegeben(event.message.text)Antwort nach
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text)
)
if __name__ == "__main__":#Stellen Sie fest, ob es mit der richtigen Dateierweiterung ausgeführt wird
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
Nennen Sie es main.py. Speichern Sie es auch in lineBotTest An diesem Punkt Es sollte so sein.
Vergewissern Sie sich, dass es sich im Terminal um den Benutzer $ line von LineBotTest handelt, und geben Sie den folgenden Befehl ein
$brew tap heroku/brew && brew install heroku
$heroku login
//Drücken Sie eine andere Taste als q, um die Anmeldung zu starten
$Heroku erstellen App-Namen
//Verwenden Sie von anderen erstellte App-Namen und eindeutige Namen, die nicht leiden
//heroku create linetest0000 Verwenden Sie diesmal linetest0000
$heroku addons:create fixie:tricycle --app linetest0000
//Hinzufügen des Add-Ons "Fixie"
$pipenv install flask
$pipenv install line-bot-sdk
//"Pipfile" und "Pipfile" im Ordner."Sperre" wird generiert.
/*
Geben Sie beim Web Scraping ein
$pipenv install bs4
$pipenv install requests
*/
$heroku config:set LINE_CHANNEL_SECRET="Kanalgeheimnis" --app linetest0000
//Geben Sie das erste erfasste Kanalgeheimnis ein
$heroku config:set LINE_CHANNEL_ACCESS_TOKEN="Zugriffstoken (langfristig)" --app linetest0000
//Geben Sie das erste Zugriffstoken ein, das Sie erhalten haben
$echo web: python main.py > Procfile
//Profilerstellung
$heroku git:remote --app linetest0000
$git init
$git add -A
$git commit -m "Geben Sie einen Kommentar ein"
$git push heroku master
git add -A Die folgenden Befehle sind die Befehle, die eingegeben werden müssen, um anzuzeigen, wann der Code geändert wird.
Wenn Sie in Ihrem Code den Import verwenden, verwenden Sie Procfile
$Name der pipenv-Installationsbibliothek
Eingeben Geben Sie Procfile mit einem Befehl ein, anstatt ihn zu öffnen
Wenn es sich nicht bewegt
$heroku logs -t
Sie können das Protokoll unter sehen. Dies funktioniert normalerweise.
Damit ist der Vorgang abgeschlossen
Recommended Posts