[PYTHON] Verwenden Sie Slackbot als Relais und kehren Sie im JSON-Format von Flasche zu Slack zurück.

Überblick

Wenn Sie den mit Slack erstellten Bot erwähnen und mit dem angegebenen Wortlaut sprechen Verknüpft mit dem Wortlaut der leichten Webframework-Flasche Gibt Informationen zurück. Die zurückgegebenen Informationen werden nachgelassen. Sie können die gleichen Informationen auch erhalten, indem Sie mit http auf die Flasche zugreifen Sie müssen nicht durchhängen.

Ergebnisbild

Bild 1 Gibt JSON gemäß dem Alphabet zurück.

sample.png

Wenn ich magi_casp erwähne und mit ihm spreche, Es gibt Informationen in JSON zurück. In diesem Beispiel liebe ich[A|B|C|D|E|F|G|H]Unter der Bedingung Wenn Sie die Buchstaben A bis H eingeben, nachdem ich liebe, Es gibt JSON gemäß dem Alphabet zurück.

Bild 2 Gibt das Wetter zurück

Wenn Sie "tenki" gegenüber magi_casp erwähnen, Es wird das Wetter für den Tag und den nächsten Tag zurückgeben.

Ob das ein guter Weg ist

Ich verstehe nicht. Während Sie Flasche und Slackbot studieren, erinnern Sie sich ein wenig an Docker Ich kam auf die Idee, dass es auf diese Weise verwendet werden könnte.

Annahme

Vorbereitung

Klon.

Führen Sie den folgenden Befehl aus, um das vom Autor erstellte Git-Repository zu klonen.

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


 
## Erstellen Sie ein Bild mit Dockerfile
 1. Erstellen Sie eine Datei, die das Bots-API-Token beschreibt.
 In dem Ordner slackbot_bottle im Klon
 Erstellen Sie eine Datei mit dem Namen APITOKEN.py in einem Ordner mit dem Namen slackbot.

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

 Beschreiben des API-Tokens von Bots im folgenden Format.
```apiapi = "API-Token"
Beispiel) API API= "apitoookennnn"
  1. Erstellen Sie ein Image eines Containers, in dem Slackbot ausgeführt wird Im Ordner slackbot_bottle im Klon, im Ordner slackbot, build_slackbot_dockerfileWeil es einen Hafenarbeiter gibt, der genannt wird Wechseln Sie in das Verzeichnis, in dem sich die entsprechende Datei befindet, und führen Sie sie mit dem folgenden Build-Befehl aus.

centos7 build_slackbot_Dockerfile .


 Dies vervollständigt das Bild. Sie können bestätigen, dass das Bild erstellt wurde, indem Sie den folgenden Befehl ausführen.
```sudo docker images```
  
 2. Erstellen Sie ein Bild des Behälters, der die Flasche bewegt
 In dem Ordner namens slackbot_bottle im Klon, in dem Ordner namens Flasche,
```build_bottle_dockerfile```Weil es einen Hafenarbeiter gibt, der genannt wird
 Wechseln Sie in das Verzeichnis, in dem sich die entsprechende Datei befindet, und führen Sie sie mit dem folgenden Build-Befehl aus.

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

 Dies vervollständigt das Bild. Sie können bestätigen, dass das Bild erstellt wurde, indem Sie den folgenden Befehl ausführen.
```sudo docker images```

## Starten Sie einen Container aus einem Image

 1. Starten Sie den Container vom Slackbot-Image.
 Beginnen Sie mit dem folgenden Befehl.

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

 2. Starten Sie den Behälter vom Bild der Flasche.
 Beginnen Sie mit dem folgenden Befehl.
`sudo docker run -d -p 3333:80 --name bottle bottle:centos7`  
 Da die Flasche Port80 abhört, ist die an prt3333 des Host-Betriebssystems adressierte Kommunikation mit Port80 des Containers verbunden.

# Erwähnung an Bot.
 Erwähne den Bot und sprich mit Tenki
```Wie ist das Wetter heute("Wolkig"),Das Wetter von morgen("Teilweise bewölkt")```
 Wenn es zurückkommt, ist es OK.
# Schauen Sie sich den Browser an

 `http: // Server IP: 3333 / tenki / tenki`
 Zugriff mit
```Wie ist das Wetter heute("Wolkig"),Das Wetter von morgen("Teilweise bewölkt")```
 Es ist perfekt, wenn es zurückkommt.

# Ende
 Wenn Sie dies bisher tun, werden das Wetter und JSON zurückgegeben, die Wörter und Alphabete verknüpfen.
 Sie können BOT und die Flasche verwenden, die damit funktioniert.
 Bitte lesen Sie auch die READ ME unten.
https://github.com/tomokitamaki/slackbotWithbottle
# Entwicklung
 Wenn Sie der Datei im Plugins-Ordner hinzufügen, können Sie die Variation der Antwort erhöhen.
 Sie können etwas komplizierter vorgehen, indem Sie den Python-Code in hello_world.py schreiben.

 TIPS
 - [Stolpern] Wenn keine Kommunikation vom Slackbot-Behälter zum Flaschenbehälter möglich ist.
 Beschrieben in der Datei, die die Erwähnung des Bots im Plugins-Ordner definiert,
 Es hat nicht funktioniert, wenn die URL die globale IP: Portnummer des Host-Betriebssystems war (z. B. http: // Server-IP: 3333)
 Es hat gut funktioniert, wenn ich die IP zur lokalen IP des Containers anstelle der globalen IP des Hosts gemacht habe.
 - So installieren Sie die Flasche
 Gehen Sie zum Ende der Seite von 2. Abschnitt zur Flascheninstallation unter http://tech.aainc.co.jp/archives/9826.
 - Wie installiere ich Slackbot?
 Vom Abschnitt zum Erstellen einer Slack Bot-Umgebung unter http://blog.bitmeister.jp/?p=3892 bis zu [Making a Slackbot (2)](http://blog.bitmeister.jp/?p=3911) in Python Fahren Sie bitte fort.
 Es ist sehr leicht zu verstehen.


Recommended Posts

Verwenden Sie Slackbot als Relais und kehren Sie im JSON-Format von Flasche zu Slack zurück.
Stellen Sie von Python aus eine Verbindung zu postgreSQL her und verwenden Sie gespeicherte Prozeduren in einer Schleife.
Konvertieren / Zurückgeben von Klassenobjekten in das JSON-Format in Python
[Python] Verwenden Sie Daten im JSON-Format als Objekt vom Typ Wörterbuch
Senden Sie eine Nachricht von IBM Cloud Functions an Slack in Python
So geben Sie die im Django-Modell enthaltenen Daten im JSON-Format zurück und ordnen sie der Broschüre zu
Kopieren und Einfügen des Inhalts eines Blattes im JSON-Format mit einer Google-Tabelle (mithilfe von Google Colab)
Verwendung ist und == in Python
Flutter in Docker - Erstellen und Verwenden einer Flutter-Entwicklungsumgebung in einem Docker-Container
Verwenden Sie libsixel, um Sixel in Python auszugeben und das Matplotlib-Diagramm an das Terminal auszugeben.
Verwenden Sie dHash, um eine Szene in einem Rennspiel auf der Strecke zu lokalisieren
Erstellen Sie Einstellungen in Terraform, um Nachrichten von AWS Lambda Python3.8 an Slack zu senden
Senden Sie eine Nachricht von Slack an einen Python-Server
Bildtext und Post to Slack (Python Slackbot)
So erstellen Sie eine JSON-Datei in Python
So generieren Sie ein Python-Objekt aus JSON
Loggen Sie sich mit json mit pygogo ein.
Eine Geschichte von Versuch und Irrtum beim Versuch, eine dynamische Benutzergruppe in Slack zu erstellen
Verwenden Sie die API, um gemeinsam eine große Anzahl ungelesener E-Mails in Google Mail zum Lesen zu ändern
Verwendung von Docker zum Containerisieren Ihrer Anwendung und Verwenden von Docker Compose zum Ausführen Ihrer Anwendung in einer Entwicklungsumgebung
Verwendung der Python-Multiprocessing (Fortsetzung 3) apply_async in einer Klasse mit Pool als Mitglied
Analysieren Sie eine JSON-Zeichenfolge, die in eine Datei in Python geschrieben wurde
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
So zeigen Sie DataFrame als Tabelle in Markdown an
Praktisch, um Matplotlib-Unterzeichnungen in for-Anweisungen zu verwenden
Wie man Decorator in Django benutzt und wie man es macht
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
Geben Sie einen Binärspeicherauszug in Binärdatei und zurück in eine Binärdatei aus
Rufen Sie die Benutzer-ID und den Bildschirmnamen des Teilnehmers in Slack ab
Ein Hinweis, der eine Python-Anwendung von Circle CI auf Elastic Beanstalk bereitstellt und Slack benachrichtigt
26.12.2015 python2> datetime> Implementierung, um die Differenz in Sekunden von zwei datetime-Zeichenfolgen im ISO-Format zu ermitteln> Use .seconds ()
Slack-Benachrichtigung, wenn ein bestimmtes Wort auf Twitter mit Heroku mit Python gemurmelt wird
Es kann ein Problem sein, Japanisch für Ordnernamen und Notizbuchnamen in Databricks zu verwenden
Started Python: Tauschen Sie das im SQL-Ergebnis erhaltene Array von Werten in den Listentyp aus und verwenden Sie es in IN einer anderen Abfrage