De nombreux articles ont écrit sur la façon de créer un linebot, mais depuis que j'étais débutant, j'avais une pierre d'achoppement, alors j'ai compensé et facilité la compréhension. Puisqu'il s'agit d'un article que j'ai rédigé pour moi-même, de nombreux points sont difficiles à comprendre, mais faites de votre mieux en vous référant à d'autres articles.
$mkdir lineBotTest
$cd lineBotTest
Entrer 3, lancez l'édition de texte dans l'application 4, sélectionnez le format dans la barre supérieure, sélectionnez le texte standard, copiez et collez ce qui suit Pas besoin de changer "LINE_CHANNEL_SECRET "etc. Copier tel quel
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="Secret de chaîne" --app Nom de l'application
Est entré dans le terminal, de sorte que le secret du canal est automatiquement entré dans le code suivant à chaque fois.
Le jeton d'accès est le même, il n'est donc pas nécessaire de le changer.
"""
channel_secret = os.getenv('LINE_CHANNEL_SECRET', None)
channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
"""
Secret de canal nul ou jeton d'accès(rien)Traitement en cas de
"""
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)
"""
Obtenez des jetons, etc. à partir des variables Heroku
"""
line_bot_api = LineBotApi(channel_access_token)
handler = WebhookHandler(channel_secret)
"""
Webhook de LINE
Fonctions de base qui ne changent pas
"""
@app.route("/callback", methods=['POST'])
def callback():
#Obtenez la valeur pour la vérification de la signature à partir de l'en-tête de la demande
signature = request.headers['X-Line-Signature']
#Obtenir le corps de la demande
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
#Validez la signature et appelez la fonction définie dans le handle s'il n'y a pas de problème
try:
handler.handle(body, signature)
except InvalidSignatureError:#Renvoie 400 lorsqu'une erreur se produit
abort(400)
return 'OK'
"""
Événement de massage en LIGNE(Lorsqu'un SMS est envoyé)Appelé quand
line_bot_api.reply_événement du premier argument du message.reply_le jeton est utilisé pour répondre aux événements
Le deuxième argument est linebot.Passer l'objet TextSendMessage pour la réponse définie dans les modèles
"""
@handler.add(MessageEvent, message=TextMessage)
def message_text(event):
#Ce qui a été entré(event.message.text)Répondre selon
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text)
)
if __name__ == "__main__":#Identifiez s'il fonctionne avec l'extension de fichier correcte
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
Nommez-le main.py. Aussi, enregistrez-le dans lineBotTest À ce point Ça devrait être comme ça.
Confirmez qu'il s'agit bien de lineBotTest user $ dans le terminal et entrez la commande suivante
$brew tap heroku/brew && brew install heroku
$heroku login
//Appuyez sur un bouton autre que q pour démarrer la connexion
$heroku créer le nom de l'application
//Utilisez des noms d'applications créés par d'autres et des noms uniques qui ne souffrent pas
//heroku create linetest0000 Utilisez linetest0000 cette fois
$heroku addons:create fixie:tricycle --app linetest0000
//Ajout du module complémentaire "Fixie"
$pipenv install flask
$pipenv install line-bot-sdk
//"Pipfile" et "Pipfile" dans le dossier."lock" est généré.
/*
Entrez lors du scraping Web
$pipenv install bs4
$pipenv install requests
*/
$heroku config:set LINE_CHANNEL_SECRET="Secret de chaîne" --app linetest0000
//Entrez le premier secret de chaîne acquis
$heroku config:set LINE_CHANNEL_ACCESS_TOKEN="Jeton d'accès (long terme)" --app linetest0000
//Entrez le premier jeton d'accès que vous avez obtenu
$echo web: python main.py > Procfile
//Création de profil
$heroku git:remote --app linetest0000
$git init
$git add -A
$git commit -m "Entrez un commentaire"
$git push heroku master
git add -A Les commandes suivantes sont les commandes à saisir pour refléter le changement de code.
Si vous utilisez l'importation dans votre code, utilisez Procfile
$nom de la bibliothèque d'installation pipenv
Entrer Entrez Procfile avec une commande au lieu de l'ouvrir
Quand ça ne bouge pas
$heroku logs -t
Vous pouvez voir le journal sur. Cela fonctionne généralement.
Ceci complète
Recommended Posts