[PYTHON] Création du LINE BOT Parrot Return

introduction

Créez un chatbot en ligne pour renvoyer le perroquet. Il existe de nombreux autres articles qui peuvent être utiles, mais cette fois, j'écrirai en incluant ceux sur lesquels je suis tombé par hasard.

Environnement d'exécution

window7 64bit python 3.6.4 éditeur Atom (tout va bien) Bibliothèque: heroku Flask line-bot-sdk

Préparer Heroku

Pour faire simple, Heroku semble être en mesure de publier facilement votre propre application Web. Il est nécessaire de créer un robot de ligne, alors installons-le. Créez un compte et installez Heroku. https://jp.heroku.com/

Après l'installation et la création du compte, à l'invite de commande

heroku login

Quand vous entrez her.JPG Un écran comme celui-ci sera affiché sur le navigateur, alors appuyez sur "Connexion". Puis dd.JPG Vous pouvez confirmer que vous vous êtes connecté avec succès.

Création de fichier

Tout ce dont tu as besoin runtime.txt requirements.txt Procfile main.py J'en ferai quatre. Regardons chacun d'eux ・ Contenu de runtime.txt

python-3.6.4

・ Contenu de requirements.txt

Flask==1.1.2
line-bot-sdk==1.17.0

Cela se fait en tapant pip freeze à l'invite de commande ・ Contenu de Procfile (sans extension)

web: python main.py

・main.py

from flask import Flask, request, abort
import os

from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage,
)

app = Flask(__name__)

#Obtenir des variables d'environnement
YOUR_CHANNEL_ACCESS_TOKEN = os.environ["YOUR_CHANNEL_ACCESS_TOKEN"]
YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"]

line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_CHANNEL_SECRET)

@app.route("/")
def hello_world():
    return "hello world!"

@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 handle_message(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=event.message.text))

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

Vous pouvez utiliser main.py tel quel sans le modifier (citation) Combinez ces fichiers dans un seul dossier.

Créer et configurer une application

À l'invite de commande

heroku create *******
heroku config:set YOUR_CHANNEL_ACCESS_TOKEN="**********" --app **********
heroku config:set YOUR_CHANNEL_SECRET="**********" --app **********

Entrez la partie de ******* en fonction de votre environnement. Entrez le nom de l'application dans le premier "heroku create ***". YOUR_CHANNEL_ACCESS_TOKEN et YOUR_CHANNEL_SECRET sont décrits dans "Paramètres de base de la chaîne" et "Paramètres de l'API de messagerie" des développeurs LINE. Après cela, entrez le nom de l'application dans "--app ****".

Déployer Heroku

À l'invite de commande

git init
git add .
git commit -m "test commit"
git push heroku master

En ordre. finalement

heroku open

Quand vous entrez ... gg.JPG

S'il peut être affiché sur le navigateur, il réussit.

Après cela, vous pouvez vérifier le fonctionnement du robot de retour de perroquet dans l'application en ligne. IMG_3328.jpg

Où j'ai trébuché

Il y a eu beaucoup de fautes de frappe en premier lieu. .. La résolution de l'erreur a pris beaucoup de temps car le fichier «Procfile» était «Procfile.text». .. Je ne remarque pas une erreur étonnamment simple. Si vous ne savez pas où se trouve l'erreur,

heroku log

Vous pouvez trouver la cause de l'erreur en tapant.

cheer up!!

Recommended Posts

Création du LINE BOT Parrot Return
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Créer un robot LINE de retour de perroquet avec AWS Cloud9
[LINE Messaging API] Créer un BOT de retour de perroquet avec Python
Point de contrôle lorsque le robot de retour LINE Parrot est accro à Heroku
Discord Bot Memorandum ① Création de bot
Créer un LINE BOT
LINE BOT si ~ trébuché
[Python] Utilisation de l'API Line [1ère création de Beauty Bot]
Créer un LINE BOT (chat)
Jusqu'à ce que Django retourne quelque chose avec un robot de ligne!
Confirmation de sécurité du bot LINE [Explication]
[Python] Créez votre propre bot LINE
[LINE bot] Je suis un ranger! Partie 2
Créer un bot LINE avec Django