[PYTHON] J'ai créé un bot LINE qui me dit le type et la force de Pokémon dans la région de Garal avec Heroku + Flask + PostgreSQL (Heroku Postgres)

introduction

Comme le titre l'indique, j'ai créé un bot LINE qui vous donnera des informations sur Pokemon qui apparaît dans la région de Garal (Sword Shield), je voudrais donc le résumer brièvement. Ci-dessous, une image d'écran.

image.png

system.png

Veuillez vous référer à [GitHub] pour la structure des fichiers.

Environnement local

Installez les bibliothèques requises à partir du fichier Pipfile suivant à l'aide de pipenv. Pour une raison quelconque, psycopg2 ne peut pas être installé normalement, j'ai donc inclus psycopg2-binary. (La cause de cette zone est inconnue.)

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
flask = "==1.1.2"
line-bot-sdk = "==1.16.0"
sqlalchemy = "==1.3.17"
psycopg2-binary = "==2.8.5"

[requires]
python_version = "3.8"

Paramètres côté API LINE

(Ceci est nécessaire après avoir travaillé avec Heroku)

Paramètres du côté Heroku

-Inscrivez-vous à [Heroku]. --Installez les commandes requises avec brew. --Connectez-vous avec la commande suivante. --Définissez les variables d'environnement avec la commande suivante.

$ brew install heroku
$ brew install postgresql
$ heroku login
$ heroku config:set LINE_CHANNEL_ACCESS_TOKEN="***********" --app {nom de l'application}
$ heroku config:set LINE_CHANNEL_SECRET="***********" --app {nom de l'application}

Préparation de PostgreSQL

--Créez une base de données vide en vous connectant à heroku.

$ heroku addons:create heroku-postgresql:hobby-dev -a {nom de l'application}
$ heroku pg:psql -a {nom de l'application}

#Démarrer la connexion, créer une table
app-name::DATABASE=> alter database {Nom de la base de données} set timezone = 'Asia/Tokyo';
app-name::DATABASE=> create table pokemon_status(
app-name::DATABASE=> id integer not null,
...
...
app-name::DATABASE=> type2 text,
app-name::DATABASE=> primary key (id));

#Copier le CSV local dans la base de données
\copy pokemon_status from '{nom de fichier}' with csv header;

Je pense que c'est enregistré comme ça. スクリーンショット 2020-06-13 12.44.55.png

Divers fichiers

runtime.txt Répertoriez la version de Python.

python-3.8.1

requirements.txt Décrit les bibliothèques requises côté serveur.

Flask==1.1.2
line-bot-sdk==1.16.0
psycopg2==2.8.5

Procfile Il s'agit d'un fichier requis par Heroku et décrit comment exécuter le programme.

web: python main.py

Le fichier principal sera un peu long, alors voyez [GitHub].

en conclusion

Amusement PS5! !!

Recommended Posts

J'ai créé un bot LINE qui me dit le type et la force de Pokémon dans la région de Garal avec Heroku + Flask + PostgreSQL (Heroku Postgres)
J'ai essayé de faire LINE BOT avec Python et Heroku
[Discode Bot] J'ai essayé de créer un Bot qui me dit la valeur de race de Pokemon
J'ai fait un bot mou qui m'informe de la température
J'ai créé un robot Line qui devine le sexe et l'âge d'une personne à partir de l'image
[Python] J'ai créé un robot qui me dit la température actuelle lorsque j'entre un nom de lieu sur LINE
J'ai créé une application Twitter qui décrypte les caractères de pré-connexion avec heroku (échec)
Je veux un bot Slack qui calcule et me dit le salaire d'un emploi à temps partiel à partir du calendrier de Google Agenda!
J'ai créé un formulaire de tweet Nyanko avec Python, Flask et Heroku
J'ai fait une erreur en récupérant la hiérarchie avec MultiIndex of pandas
Depuis que j'ai commencé à travailler à des moments différents, j'ai créé un Bot qui me dit l'heure de quitter le travail
J'ai fait un robot de remplacement de tampon avec une ligne
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
Avec LINEBot, j'ai fait une application qui m'informe de "l'heure du bus"
[Python] J'ai créé un LINE Bot qui détecte les visages et effectue le traitement de la mosaïque.
J'ai créé un Bot LINE avec Serverless Framework!
En Python, j'ai créé un LINE Bot qui envoie des informations sur le pollen à partir des informations de localisation.
Made Mattermost Bot avec Python (+ Flask)
J'ai créé un système avec Raspberry Pi qui mesure périodiquement l'indice d'inconfort de la pièce et envoie une notification LINE s'il s'agit d'une valeur dangereuse
Création d'une application Web qui mappe les informations sur les événements informatiques avec Vue et Flask
J'ai créé un bot de livre de compte de ménage avec LINE Bot
Je n'aime pas être frustré par la sortie de Pokemon Go, j'ai donc créé un script pour détecter la sortie et le tweeter
Un serveur qui renvoie le nombre de personnes devant la caméra avec bottle.py et OpenCV
Jusqu'à ce que Django retourne quelque chose avec un robot de ligne!
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)
L'histoire de la création d'un Bot qui affiche les membres actifs dans un canal spécifique de Slack avec Python
J'ai créé un programme qui résout la recherche d'erreur en quelques secondes
J'ai créé un robot Twitter qui marmonne le Pokémon capturé par #PokemonGO
J'ai fait un programme qui calcule automatiquement le zodiaque avec tkinter
J'ai créé un robot musical en utilisant discord.py et l'API Google Drive (testé avec Docker → déployé sur Heroku)
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
J'ai fait un calendrier qui met à jour automatiquement le calendrier de distribution de Vtuber
J'ai créé un bot Discord en Python qui se traduit quand il réagit
J'ai fait GAN avec Keras, donc j'ai fait une vidéo du processus d'apprentissage.
Représenter des conteneurs dans un cadre imbriqué (schéma) dans Jupyter, et ce que j'ai étudié en cours de création
[Python] J'ai créé un code de scraping web qui acquiert automatiquement le titre de l'actualité et l'URL de Nihon Keizai Shimbun.
J'ai créé un programme en Python qui lit les données FX CSV et crée un grand nombre d'images de graphiques
Créez une application simple qui intègre l'API Fetch pour les requêtes Ajax dans Flask et expliquez-la rapidement.
Création d'un bot Slack qui confirme et notifie à AWS Lambda la date d'expiration d'un certificat SSL
J'ai créé un Line Bot qui utilise Python pour récupérer les e-mails non lus de Gmail!
J'ai créé un robot LINE qui envoie des images recommandées tous les jours à l'heure
J'ai créé une commande appdo pour exécuter des commandes dans le contexte de l'application
J'ai créé un SlackBot qui m'informe chaque semaine des informations sur le concours AtCoder
J'ai créé un Linebot qui m'informe des sites d'évacuation à proximité sur AWS
Créez un BOT qui affiche le nombre de personnes infectées dans le nouveau Corona
J'ai comparé la moyenne mobile du type de filtre IIR avec les pandas et scipy
[Pour les débutants] J'ai fait un capteur humain avec Raspberry Pi et notifié LINE!