[PYTHON] Utilisez slackbot comme relais et retournez de bouteille à slack au format json.

Aperçu

Si vous mentionnez le bot créé avec slack et parlez avec le libellé spécifié Lié au libellé de la bouteille de cadre Web léger Renvoie des informations. Les informations renvoyées seront publiées sur slack. De plus, vous pouvez obtenir les mêmes informations en accédant à Bottle avec http, donc Vous n'avez pas à passer par le mou.

Image de résultat

Image 1 Renvoie JSON selon l'alphabet.

sample.png

Quand je mentionne magi_casp et que je lui parle, Il renvoie des informations en JSON. Dans cet exemple j'aime[A|B|C|D|E|F|G|H]À la condition Si vous entrez les lettres A à H après j'aime, Il renvoie JSON selon l'alphabet.

Image 2 Renvoie la météo

Lorsque vous mentionnez tenki à magi_casp, Il renverra la météo du jour et du lendemain.

Savoir si c'est un bon moyen

Je ne comprends pas. En étudiant la bouteille et le slackbot, je me souviens un peu de Docker J'ai eu l'idée qu'il pouvait être utilisé de cette manière.

supposition

Préparation

cloner.

Exécutez la commande suivante pour cloner le référentiel git créé par l'auteur.

git clonehttps://github.com/tomokitamaki/slackbotWithbottle.git


 
## Créer une image à l'aide de Dockerfile
 1. Créez un fichier décrivant le jeton API Bots.
 Dans le dossier appelé slackbot_bottle dans le clone
 Créez un fichier appelé APITOKEN.py dans un dossier appelé slackbot.

#### **`vi APITOKEN.py`**
```py

 Décrivez le jeton API des bots au format suivant.
```apiapi = "jeton API"
Exemple) API API= "apitoookennnn"
  1. Créez une image d'un conteneur dans lequel slackbot s'exécute Dans le dossier appelé slackbot_bottle dans le clone, dans le dossier appelé slackbot, build_slackbot_dockerfileParce qu'il y a un docker fie appelé Déplacez-vous vers le répertoire où se trouve le fichier correspondant et exécutez-le avec la commande de construction suivante.

centos7 build_slackbot_Dockerfile .


 Ceci complète l'image. Vous pouvez confirmer que l'image est créée en exécutant la commande suivante.
```sudo docker images```
  
 2. Créez une image du conteneur qui déplace la bouteille
 Dans le dossier appelé slackbot_bottle dans le clone, dans le dossier appelé bouteille,
```build_bottle_dockerfile```Parce qu'il y a un docker fie appelé
 Déplacez-vous vers le répertoire où se trouve le fichier correspondant et exécutez-le avec la commande de construction suivante.

#### **`centos7 build_bottle_Dockerfile .  `**
```sudo docker build -t slackbot

 Ceci complète l'image. Vous pouvez confirmer que l'image est créée en exécutant la commande suivante.
```sudo docker images```

## Lancer un conteneur à partir d'une image

 1. Démarrez le conteneur à partir de l'image slackbot.
 Commencez par la commande suivante.

#### **`centos7`**
```sudo docker run -d --name slackbot slackbot

 2. Démarrez le récipient à partir de l'image de la bouteille.
 Commencez par la commande suivante.
`sudo docker run -d -p 3333:80 --name bottle bottle:centos7`  
 Puisque Bottle écoute sur le port80, la communication adressée au prt3333 du système d'exploitation hôte est connectée au port80 du conteneur.

# Mentionnez à Bot.
 Mentionnez le Bot et parlez à tenki
```Quel temps fait-il aujourd'hui("Nuageux"),La météo de demain("Partiellement nuageux")```
 Si ça revient, ça va.
# Jetez un œil au navigateur

 `http: // IP du serveur: 3333 / tenki / tenki`
 Accès avec
```Quel temps fait-il aujourd'hui("Nuageux"),La météo de demain("Partiellement nuageux")```
 C'est parfait quand il revient.

# fin
 Si vous faites jusqu'à présent, il renverra la météo et JSON qui relie les mots et les alphabets
 Vous pourrez utiliser BOT et la bouteille qui fonctionne avec.
 Veuillez également consulter le LISEZ-MOI ci-dessous.
https://github.com/tomokitamaki/slackbotWithbottle
# développement
 Si vous ajoutez au fichier dans le dossier plugins, vous pouvez augmenter la variation de la réponse.
 Vous pouvez faire quelque chose d'un peu plus compliqué en écrivant du code python dans hello_world.py.

 TIPS
 - [Stumbling] Lorsque la communication entre le conteneur slackbot et le conteneur bouteille n'est pas possible.
 Décrit dans le fichier définissant la mention du bot dans le dossier plugins,
 Cela ne fonctionnait pas si l'URL était l'adresse IP globale: numéro de port du système d'exploitation hôte (ex: http: // IP du serveur: 3333), donc
 Cela fonctionnait bien si je faisais de l'adresse IP l'adresse IP locale du conteneur au lieu de l'adresse IP globale de l'hôte.
 --Comment installer la bouteille
 Allez à la fin de la page à partir de la section 2. Installation des bouteilles sur http://tech.aainc.co.jp/archives/9826.
 --Comment installer slackbot
 De la section sur la création d'un environnement Slack Bot sur http://blog.bitmeister.jp/?p=3892 à [Créer un Slackbot (2)](http://blog.bitmeister.jp/?p=3911) en Python Continuez, s'il vous plaît.
 C'est très facile à comprendre.


Recommended Posts

Utilisez slackbot comme relais et retournez de bouteille à slack au format json.
Connectez-vous à postgreSQL depuis Python et utilisez des procédures stockées dans une boucle.
Convertir / renvoyer des objets de classe au format JSON en Python
[Python] Utiliser les données au format JSON comme objet de type dictionnaire
Publier un message d'IBM Cloud Functions sur Slack en Python
Comment retourner les données contenues dans le modèle django au format json et les mapper sur le dépliant
Comment copier et coller le contenu d'une feuille au format JSON avec une feuille de calcul Google (en utilisant Google Colab)
Comment utiliser is et == en Python
Flutter dans Docker - Comment créer et utiliser un environnement de développement Flutter dans un conteneur Docker
Utilisez libsixel pour générer Sixel en Python et générer le graphe Matplotlib vers le terminal.
Utilisez dHash pour localiser sur le parcours à partir d'une scène dans un jeu de course
Créez des paramètres dans terraform pour envoyer des messages depuis AWS Lambda Python3.8 vers Slack
Envoyer un message de Slack à un serveur Python
Texte de l'image et publication sur slack (python slackbot)
Comment créer un fichier JSON en Python
Comment générer un objet Python à partir de JSON
Connectez-vous avec json en utilisant pygogo.
Une histoire d'essais et d'erreurs essayant de créer un groupe d'utilisateurs dynamique dans Slack
Utilisez l'API pour modifier collectivement un grand nombre d'e-mails non lus dans Gmail à lire
Comment utiliser Docker pour conteneuriser votre application et comment utiliser Docker Compose pour exécuter votre application dans un environnement de développement
Comment utiliser le multitraitement python (suite 3) apply_async en classe avec Pool en tant que membre
Analyser une chaîne JSON écrite dans un fichier en Python
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment afficher DataFrame sous forme de tableau dans Markdown
Pratique pour utiliser les sous-graphiques matplotlib dans l'instruction for
Comment utiliser Decorator dans Django et comment le créer
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Sortie d'un vidage binaire en binaire et retour dans un fichier binaire
Obtenez l'ID utilisateur et le nom d'écran du participant dans Slack
Une note qui déploie une application Python de Circle CI vers Elastic Beanstalk et avertit Slack
2015-12-26 python2> datetime> Implémentation pour prendre la différence en secondes entre deux chaînes datetime au format ISO> Utiliser .seconds ()
Notification Slack lorsqu'un mot spécifique est murmuré sur Twitter en utilisant Heroku avec python
L'utilisation du japonais pour les noms de dossier et les noms de bloc-notes dans Databricks peut poser problème
Python démarré: échangez le tableau de valeurs obtenu dans le résultat SQL vers le type de liste et utilisez-le dans IN d'une autre requête