Verwenden Sie OpenWhisk, um Slack über Wetterinformationen zu informieren.
Die Methode zum Erfassen von Wetterinformationen wird im folgenden Artikel beschrieben.
Dieses Mal werde ich den Ablauf der Benachrichtigung von Slack über die von Weather Company erfassten Daten beschreiben.
Der Open Whisk-Bildschirm von Bluemix wurde ebenfalls neu gestaltet. Ist das süß.
Bei Verwendung von Slack ist es dasselbe wie bei Weather Company. Wählen Sie im Aktionsbearbeitungsbildschirm oben rechts "Katalog anzeigen".
Wählen Sie "SLACK".
Das Slack-Paket wird angezeigt.
Werfen wir einen Blick auf die Beispieleingabe. Um Slack zu benachrichtigen, sollten Sie anscheinend die folgenden Parameter in JSON eingeben.
{
"channel": "myChannel",
"text": "Hello OpenWhisk!",
"url": "https://hooks.slack.com/services/XYZ/ABCDEFG/12345678",
"username": "openwhisk"
}
Der Inhalt ist die URL, der Benutzername und der Kanalname von Slacks Webhook. Und der zu benachrichtigende Text. Wählen Sie links NEUES GEBOT.
Geben Sie die URL und den Kanal entsprechend der Lücke ein, die Sie benachrichtigen möchten, geben Sie einen beliebigen Benutzernamen ein und speichern Sie die Konfiguration. Jetzt müssen Sie nur noch den Text erstellen, um Sie zu benachrichtigen.
Im vorherigen Artikel lauten die von Weather Company erfassten Daten wie folgt.
{
"metadata": {
"latitude": 35.68,
"status_code": 200,
"longitude": 139.76,
...(Kürzung)...
},
"observation": {
"dewPt": 1,
"blunt_phrase": null,
"pressure_tend": 2,
"pressure_desc": "Falling",
...(Kürzung)...
"wx_phrase": null,
"terse_phrase": null,
"uv_index": 3
}
}
Holen Sie sich die erforderlichen Parameter und schreiben Sie einen kleinen Code in Slack, um sie in die Textparameter einzufügen. Wählen Sie Aktion erstellen.
Aktionen sind derzeit in Swift, Node.js, Python und Docker verfügbar. Dieses Mal habe ich Python gewählt.
Die Codierung ist wie gewohnt ** Ich werde nicht mein Bestes geben. ** **.
weather_to_slack.py
import sys
def main(dict):
slack = {}
latitude = dict["metadata"]["latitude"]
longitude = dict["metadata"]["longitude"]
pressure = dict["observation"]["pressure"]
temp = dict["observation"]["temp"]
rh = dict["observation"]["rh"]
message = "temperature:" + str(temp) + "\n" + "Humidity:" + str(rh) + "\n" + "Atomosheric pressure:" + str(pressure)
slack["text"] = message
return slack
Da die von WeatherCompany empfangenen Parameter in einem Wörterbuchtyp übergeben werden, extrahieren Sie nur die gewünschten Parameter und packen Sie sie in den Text von slack. Ich habe versucht, den Text durch Ausprobieren auf Japanisch anzuzeigen, aber es hat nicht funktioniert und ich hatte keine andere Wahl, als ihn auf Englisch zu schreiben. Ist es möglich, japanisches JSON zu übertragen?
Die Aktion ist fertig. Erstellen Sie eine "Sequenz", die jede Aktion kombiniert, und versuchen Sie, sie auszuführen. Wählen Sie aus der soeben erstellten Aktion unten rechts "Link to Sequence" aus.
Wählen Sie den zuvor eingestellten SLACK aus.
Wählen Sie für den BIND links den diesmal eingestellten BIND aus. Klicken Sie auf Zur Sequenz hinzufügen.
Von dem Weather_to_slack, das ich dieses Mal gemacht habe, habe ich einen Flow, um es an das Slack-Paket weiterzugeben! Fügen Sie als Nächstes die Wetterfirma hinzu, von der die Daten erhalten wurden. Wählen Sie unten rechts "Erweitern".
Wählen Sie "WETTER".
Wählen Sie für WETTER den zuvor eingestellten BIND für den BIND links aus und klicken Sie auf "Zur Sequenz hinzufügen".
Ich war verbunden! !!
..., aber die Reihenfolge der Ausführung der Aktion ist Korejanai. Sokojanai.
Aber es ist okay. Sie können die Reihenfolge der Aktionsausführung ändern, indem Sie auf den Pfeil oben rechts neben der Wetteraktion klicken.
Ändern Sie den Aktionsfluss in.
Es ist in der richtigen Reihenfolge! Klicken Sie unten rechts auf Aktionssequenz speichern und geben Sie der Sequenz einen Namen.
Es wurde gerettet! Klicken Sie auf die von Ihnen erstellte Sequenz und dann auf "Diese Sequenz ausführen".
Wetterinformationen werden Slack mitgeteilt.
Seit dieser Überprüfung wurde der Watson-Paketkatalog erweitert. Ich werde auf jeden Fall versuchen, auch TextToSpeech und SpeechToText zu verwenden.
Recommended Posts