[PYTHON] Notification Slack des informations météorologiques avec Open Whisk

Utilisez OpenWhisk pour informer Slack des informations météorologiques.

snip_20161031002150.png

La méthode d'acquisition des informations météorologiques est décrite dans l'article suivant.

Cette fois, je décrirai le déroulement de la notification à Slack des données acquises par Weather Company.

Utilisez le catalogue de packages de Slack

L'écran Open Whisk de Bluemix a également été repensé. Est-ce que c'est mignon.

snip_20161223024154.png

Lorsque vous utilisez Slack, c'est la même chose que Weather Company. Depuis l'écran de modification des actions, sélectionnez "Afficher le catalogue" en haut à droite.

snip_20161025222009.png

Sélectionnez "SLACK".

snip_20161025222036.png

Le package Slack s'affiche.

snip_20161025222114.png

Jetons un coup d'œil à l'exemple d'entrée. Afin de notifier Slack, il semble que vous deviez entrer les paramètres suivants dans JSON.

{
    "channel": "myChannel",
    "text": "Hello OpenWhisk!",
    "url": "https://hooks.slack.com/services/XYZ/ABCDEFG/12345678",
    "username": "openwhisk"
}

Le contenu est l'URL, le nom d'utilisateur et le nom de canal du Webhook de Slack. Et le texte à notifier. Sélectionnez NOUVELLE OFFRE sur la gauche.

snip_20161223222258.png

Entrez l'url et le canal en fonction de la marge que vous souhaitez notifier, entrez n'importe quel nom d'utilisateur et enregistrez la configuration. Il ne vous reste plus qu'à créer le texte pour vous avertir.

Traiter les informations obtenues par Weather Company pour la notification Slack

Dans l'article précédent, les données acquises par Weather Company sont les suivantes.

{
  "metadata": {
    "latitude": 35.68,
    "status_code": 200,
    "longitude": 139.76,

...(réduction)...

  },
  "observation": {
    "dewPt": 1,
    "blunt_phrase": null,
    "pressure_tend": 2,
    "pressure_desc": "Falling",

...(réduction)...

    "wx_phrase": null,
    "terse_phrase": null,
    "uv_index": 3
  }
}

Obtenez les paramètres requis et écrivez un peu de code dans Slack pour les insérer dans les paramètres de texte. Sélectionnez Créer une action.

snip_20161022171511.png

Les actions sont actuellement disponibles dans Swift, Node.js, Python et Docker. Cette fois, j'ai choisi Python.

snip_20161029203312.png

Le codage est comme d'habitude ** Je ne ferai pas de mon mieux. ** **

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

Les paramètres reçus de Weather Company sont transmis dans un format de dictionnaire, donc extrayez uniquement les paramètres souhaités et insérez-les dans le texte mou. J'ai essayé d'afficher le texte en japonais par essais et erreurs, mais cela n'a pas fonctionné et je n'avais pas d'autre choix que de l'écrire en anglais. Est-il possible de transférer du JSON japonais?

Exécuter en spécifiant le flux de traitement dans la séquence

L'action est prête. Créez une "séquence" qui combine chaque action et essayez de l'exécuter. À partir de l'action que vous venez de créer, sélectionnez "Lier à la séquence" en bas à droite.

snip_20161223225348.png

Sélectionnez le SLACK que vous avez défini précédemment.

snip_20161223225422.png

Pour le BIND sur la gauche, sélectionnez le jeu BIND cette fois. Cliquez sur Ajouter à la séquence.

snip_20161223225637.png

Depuis le Weather_to_slack que j'ai fait cette fois, j'ai un flux pour le transmettre au package Slack! Ensuite, ajoutez la société météorologique à partir de laquelle les données ont été obtenues. Sélectionnez "Prolonger" en bas à droite.

snip_20161223225705.png

Sélectionnez "MÉTÉO".

snip_20161223225732.png

Pour WEATHER, sélectionnez le BIND précédemment défini pour le BIND sur la gauche et cliquez sur "Add to Sequence".

snip_20161223225755.png

J'étais connecté! !!

snip_20161223225832.png

..., mais l'ordre d'exécution des actions est Korejanai. Sokojanai.

Mais c'est d'accord. Vous pouvez modifier l'ordre d'exécution des actions en cliquant sur la flèche en haut à droite de l'action Météo.

  1. Obtenez des informations météorologiques avec Météo
  2. Utilisez l'application créée pour remplir les informations météorologiques dans le texte mou.
  3. Relâchez.

Modifiez le déroulement des actions dans.

snip_20161223225906.png

C'est dans le bon ordre! Cliquez sur Enregistrer la séquence d'actions en bas à droite et donnez un nom à la séquence.

snip_20161223225958.png

Il a été sauvé! Cliquez sur la séquence que vous avez créée et cliquez sur "Exécuter cette séquence"

snip_20161223230045.png

Les informations météorologiques seront notifiées à Slack.

snip_20161031002150.png

en conclusion

Depuis cette vérification, le catalogue de packages Watson a été développé. J'essaierai certainement d'utiliser TextToSpeech et SpeechToText également.

Recommended Posts

Notification Slack des informations météorologiques avec Open Whisk
Bot d'invitation au déjeuner chez Slack
Notification Slack des informations météorologiques avec Open Whisk
Acquisition des informations météorologiques (DarkSky)
Publiez régulièrement des images de Papillon sur Python + AWS Lambda + Slack
Définir des informations telles que la longueur sur le bord de NetworkX