Créez un bot LINE avec Python + heroku

introduction

Cette fois, je vais créer un bot de retour en utilisant Python et heroku. Cet article s'adresse aux personnes qui ont un bon environnement pour python3 et homebrew. Si vous n'avez pas encore d'environnement https://ai-inter1.com/python-install/ https://qiita.com/balius_1064/items/ac7dff5ef10eaf69996f Veuillez vous référer à l'article etc.

Environnement de développement

Paramètres des développeurs LINE

Tout d'abord, connectez-vous à LINE Developers avec votre compte LINE. スクリーンショット 2020-05-09 13.10.51.jpg

Lorsque vous vous connectez, l'écran d'enregistrement du compte Développeurs s'affiche. --Nom du développeur

Lorsque l'enregistrement du compte est terminé スクリーンショット 2020-05-09 13.14.17.jpg

Une page comme celle-ci apparaîtra, cliquez sur Créer un nouveau fournisseur. Lorsque vous entrez le nom du fournisseur スクリーンショット 2020-05-09 13.16.31.jpg

S'affiche, sélectionnez l'API de messagerie. スクリーンショット 2020-05-09 13.17.40.jpg Lorsque cet écran s'affiche, --Nom du canal --Description du canal

installation de line-bot-sdk et flask

pip install flask
pip install line-bot-sdk

Procédez comme suit pour line-bot-sdk et flask /) Est installé.

mkdir line-bot
cd line-bot

Ensuite, ouvrez un terminal, créez un répertoire pour linebot et accédez à ce répertoire.

Créer un fichier de configuration

runtime.txt


python-3.7.3

requirements.txt


Flask==1.1.1
line-bot-sdk==1.8.0

Procfile


web: python main.py

--runtime.txt ・ ・ ・ La version Python est décrite --requirements.txt ・ ・ ・ Décrivez la bibliothèque à installer --Procfile ・ ・ ・ Décrit comment exécuter le programme

Une fois que vous avez configuré jusqu'à présent, il est temps de créer un programme python.

main.py


#Importer la bibliothèque
from flask import Flask, request, abort
from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    FollowEvent, MessageEvent, TextMessage, TextSendMessage, ImageMessage, ImageSendMessage, TemplateSendMessage, ButtonsTemplate, PostbackTemplateAction, MessageTemplateAction, URITemplateAction
)
import os
#Framework d'application Web léger:Flask
app = Flask(__name__)

#LINE Acces Token
LINE_CHANNEL_ACCESS_TOKEN = "LINE_CHANNEL_ACCESS_TOKEN"
#LINE Channel Secret
LINE_CHANNEL_SECRET = "LINE_CHANNEL_SECRET"

line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)

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

    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + 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__":
    port = os.getenv("PORT")
    app.run(host="0.0.0.0", port=port)

Créez main.py comme ceci.

#LINE Acces Token
LINE_CHANNEL_ACCESS_TOKEN = "LINE_CHANNEL_ACCESS_TOKEN"
#LINE Channel Secret
LINE_CHANNEL_SECRET = "LINE_CHANNEL_SECRET"

Pour la partie Jeton d'accès LINE et Secret de canal LINE, accédez à la page de configuration du canal de bot LINE que vous avez créée en premier, vérifiez la vôtre et copiez et collez. スクリーンショット 2020-05-09 13.56.16.jpg スクリーンショット 2020-05-09 13.56.42.jpg

Paramètres Heroku

Tout d'abord, veuillez vous inscrire sur Heroku. (C'était dur pour moi qui ne suis pas bon en anglais) Une fois l'enregistrement terminé, cliquez sur créer une nouvelle application pour créer l'application. スクリーンショット 2020-05-09 14.10.55.jpg Le nom de l'application que vous saisissez à ce stade ne doit pas être partagé avec d'autres personnes, alors réfléchissez bien. スクリーンショット 2020-05-09 14.11.15.jpg Après avoir créé l'application, entrez l'URL écrite dans Domains of Setting with / callback dans le paramètre webhook de l'API de messagerie LINE. スクリーンショット 2020-05-09 14.15.34.jpg スクリーンショット 2020-05-09 14.17.25.jpg

Puis au terminal

brew install heroku

Veuillez exécuter le. Ensuite, configurez-le pour pousser vers heroku.

heroku login

Et appuyez sur la touche Entrée pour lancer le navigateur. Veuillez saisir l'adresse e-mail et le mot de passe que vous avez enregistrés précédemment pour vous connecter.

Logged in as [Adresse e-mail enregistrée]

S'affiche, c'est réussi.

git init

heroku git:remote -a (nom de l'application)

git add .

git commit -m "first commit"

git push heroku master

L'exécution des commandes ci-dessus dans l'ordre terminera le déploiement. À l'activité d'Heroku スクリーンショット 2020-05-09 14.50.17.jpg Si la construction a réussi s'affiche, cela signifie qu'il a réussi.

Définition des variables d'environnement

heroku config:set LINE_CHANNEL_ACCESS_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXX

heroku config:set LINE_CHANNEL_SECRET=XXXXXXXXXXXXXXXXXXXXX

Ensuite, exécutez les deux ci-dessus dans le terminal pour définir les variables d'environnement. C'est le même que le jeton d'accès à la ligne et le secret de canal de ligne entrés précédemment dans main.py, donc copiez-le et exécutez-le.

Achevée

Envoyons les caractères appropriés au bot que vous avez ajouté plus tôt avec votre application LINE! Si vous obtenez le même contenu que les personnages que vous avez envoyés, vous réussissez. hoge.jpg

Si vous pouvez le lire mais que cela ne fonctionne pas, accédez au terminal

heroku logs --tail

Si vous entrez, vous pouvez voir le journal en temps réel, veuillez donc rechercher la cause là-bas. (Souvent, l'API de messagerie LINE a désactivé les webhooks)

Résumé

Cette fois, j'ai créé un LINEbot qui vous rendra service, mais vous pouvez améliorer ce code source et créer votre propre LINEbot! Aussi, Rich Menu et LIFF App Il est également possible de créer un bot LINE plus luxueux en ajoutant liff / develop-liff-apps /). Veuillez essayer ça aussi!

référence

https://developers.line.biz/ja/docs/messaging-api/ https://github.com/line/line-bot-sdk-python

Recommended Posts

Créez un bot LINE avec Python + heroku
Environnement de lancement avec LineBot + Heroku + Docker + Python
Créer un bot Twitter Trend avec heroku + Python
Créez Puyopuyo AI avec Python
Faites une loterie avec Python
Créer Apache Log CSV avec Python
Faisons une interface graphique avec python.
Créer un système de recommandation avec python
Faisons un graphe avec python! !!
Rendre la console Python couverte d'UNKO
Faisons un jeu de shiritori avec Python
J'ai essayé linebot avec flacon (anaconda) + heroku
Fractal pour faire et jouer avec Python
Laissez Heroku faire le traitement en arrière-plan avec Python
Faisons la voix lentement avec Python
Facilitez la soumission de pypy avec atcoder-cli (python)
[Python] Rendons matplotlib compatible avec le japonais
Application Web facile avec Python + Flask + Heroku
Créez un framework Web avec Python! (1)
Créez une application de bureau avec Python avec Electron
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
LINE heroku python
Bingo avec python
Zundokokiyoshi avec python
LINE-Bot [0] en Python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Comment télécharger avec Heroku, Flask, Python, Git (4)
Pyinstaller transforme les scripts Python en .exes qui peuvent être exécutés sous Windows
Je veux faire un jeu avec Python
Procédure de création d'un LineBot réalisé avec Python
Essayez de créer un code de "décryptage" en Python
Rendre OpenCV3 disponible à partir de python3 installé avec pyenv
Créez rapidement votre propre module avec setuptools (python)
Remplaçons UWSC par Python (5) Faisons un robot
Essayez de créer un groupe de dièdre avec Python
Jusqu'à l'utilisation de PhantomJS avec Python sur Heroku
[Python] Expression (1,2) ne fait pas de taple avec des parenthèses
Convertir JSON en CSV avec Python de Splunk
Faire fonctionner Python avec jhbuild sous OSX
[# 1] Créez Minecraft avec Python. ~ Recherche préliminaire et conception ~
Communication série avec Python
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Zip, décompressez avec python