[PYTHON] Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert

Holen Sie sich einen Token für Open Weather Map

Erstellen Sie ein Konto unter http://openweathermap.org/ und rufen Sie API_KEY auf dem Bildschirm api_keys auf.

Holen Sie sich Slack Bottest Token

Die Erklärung, wie man das Token von Bot erhält, findet sich im API-Handbuch von Slack.

Referenz-URL: https://api.slack.com/bot-users

Programmbeispiel

In diesem Programm wird die Temperatur des entsprechenden Bereichs durch Angabe des Breiten- und Längengrads erfasst.

In bot.py wird der Prozess beschrieben, bei dem die Temperatur tatsächlich ermittelt und auf dem Slack-Kanal getwittert wird. Offene Wetterkarte, Slack-Token usw. werden in settings.py festgelegt.

Verzeichnisaufbau

norths_weather_bot
├── bot.py
└── settings.py

bot.py

#/usr/bin/env python2.7                                                                                                                                                                                     
#-*- coding: utf-8 -*-                                                                                                                                                                                      

import json
import urllib
import urllib2

import settings

class Weather(object):
    """                                                                                                                                                                                                     
    """
    def __init__(self):
        """                                                                                                                                                                                                 
        """
        params = {'appid' : settings.OPEN_WETHER_APP_ID,
                  'lat'   : settings.OPEN_WETHER_LAT,
                  'lon'   : settings.OPEN_WETHER_LON,
                  'units' : settings.OPEN_WETHER_UNITS,
                  }

        params = urllib.urlencode(params)
        response = urllib2.urlopen(settings.OPEN_WETHER_URL + '?' + params)

        self.json = json.loads(response.read())


    def get_temp(self):
        """                                                                                                                                                                                                 
        """
        return {'max' : self.json['main']['temp_max'],
                'min' : self.json['main']['temp_min'],
                'now' : self.json['main']['temp'], }


class Bot(object):
    """                                                                                                                                                                                                     
    """
    def __init__(self):
        """                                                                                                                                                                                                 
        """
        self.set_serif()

    def set_serif(self, serif=''):
        """                                                                                                                                                                                                 
        """
        self.serif = serif

    def speak(self):
        """                                                                                                                                                                                                 
        """
        params = {'token'  : settings.SLACK_TOKEN,
                  'channel': settings.SLACK_CHANNEL,
                  'text'   : self.serif,}

        params = urllib.urlencode(params)

        req = urllib2.Request(settings.SLACK_URL)

        req.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req.add_data(params)

        res = urllib2.urlopen(req)

        body = res.read()


if __name__ == "__main__":
    """                                                                                                                                                                                                     
    entry point                                                                                                                                                                                             
    """
    temp = Weather().get_temp()

    bot = Bot()
    bot.set_serif('Aktuelle Temperatur: {0}℃ ,Höchste Temperatur: {1}℃ ,Niedrigste Temperatur: {2}℃'.format(temp['now'], temp['max'], temp['min']))
    bot.speak()

settings.py

#-*- coding: utf-8 -*-                                                                                                                                                                                      

OPEN_WETHER_URL = "" # API URL
OPEN_WETHER_APP_ID = "" # API KEY
OPEN_WETHER_LAT = "" #Breite
OPEN_WETHER_LON = "" #Längengrad
OPEN_WETHER_UNITS = "" #Geben Sie an, ob es sich um Grad Celsius oder absolute Temperatur handelt. Bei der Metrik ist dies in Grad Celsius angegeben.

SLACK_URL = "" # URL
SLACK_TOKEN = "" #Zeichen
SLACK_CHANNEL = "" #Kanal, den Sie posten möchten

GIT-Repository

https://bitbucket.org/ponsuke/norths_weather_bot

Recommended Posts

Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe einen SlackBot erstellt, der mich jede Woche über Informationen zum AtCoder-Wettbewerb informiert
Ich habe einen Linebot erstellt, der mich über nahegelegene Evakuierungsstellen auf AWS informiert
[Bot dekodieren] Ich habe versucht, einen Bot zu erstellen, der mir den Rassenwert von Pokemon angibt
[Python] Ich habe einen Bot erstellt, der mir die aktuelle Temperatur anzeigt, wenn ich einen Ortsnamen in LINE eingebe
Erstellt einen Slack-Bot, der AWS Lambda über das Ablaufdatum eines SSL-Zertifikats bestätigt und benachrichtigt
Ich möchte einen Slack-Bot, der das Gehalt eines Teilzeitjobs aus dem Zeitplan von Google Kalender berechnet und anzeigt!
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
Ich habe einen Slack-Bot geschrieben, der Verzögerungsinformationen mit AWS Lambda benachrichtigt
Ich habe einen Linienbot erstellt, der das Geschlecht und das Alter einer Person anhand des Bildes errät
Da ich zu verschiedenen Zeiten anfing zu arbeiten, machte ich einen Bot, der mir die Zeit sagt, die Arbeit zu verlassen
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Mit LINEBot habe ich eine Anwendung erstellt, die mich über die "Buszeit" informiert.
LINE Bot, der Sie über die interessierenden Aktien informiert
Ich habe einen Zwietrachtbot gemacht
Ich habe mit Heroku + Flask + PostgreSQL (Heroku Postgres) einen LINE-Bot erstellt, der mir den Typ und die Stärke von Pokemon in der Garal-Region angibt.
Ich habe eine Twitter-App erstellt, die die Zeichen der Vorverbindung mit Heroku entschlüsselt (Fehler).
Ein Programm, das den Betriebszustand von vollautomatischen Anlagenfotografieanlagen mitteilt
[Python / C] Ich habe versucht, ein Gerät zu erstellen, das den Bildschirm eines PCs drahtlos aus der Ferne scrollt.
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert (Google Kalender Edition).
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Ich habe ein Punktbild des Bildes von Irasutoya gemacht. (Teil 1)
Ich habe ein Punktbild des Bildes von Irasutoya gemacht. (Teil 2)
[Python] Ich habe einen Line-Bot erstellt, der zufällig nach englischen Wörtern fragt
Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst
Ich habe einen Twitter-Bot erstellt, der das von #PokemonGO gefangene Pokemon murmelt
Ich habe einen Discord-Chat-Lesebot erstellt, indem ich das Erscheinungsbild nachgeahmt habe
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
[Kaggle] Ich habe mit dem Titanic-Tutorial eine Sammlung von Problemen erstellt
Die Geschichte des Erstellens eines Bots, der aktive Mitglieder in einem bestimmten Slack-Kanal mit Python anzeigt
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe einen Korpusleser geschrieben, der die Ergebnisse der MeCab-Analyse liest
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann
Ich habe GAN mit Keras gemacht, also habe ich ein Video des Lernprozesses gemacht.
Ich habe eine Bibliothek konoha gemacht, die den Tokenizer auf ein schönes Gefühl umstellt
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
(Python) Ich habe eine App von Trello erstellt, die regelmäßig über das Auslaufen von Aufgaben informiert, die bald ablaufen.
Erstellen Sie einen Bot, der die Anzahl der Personen, die für das neue Corona-Virus in Tokio positiv sind, an Slack sendet
Ich habe einen Stempelersatzbot mit Linie gemacht
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Mattermost Bot mit Python gemacht (+ Flask)
Ich habe ein Tool erstellt, um die Ausführungszeit von cron zu schätzen (+ PyPI-Debüt)
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich habe einen Zeilenbot erstellt, der Python verwendet, um ungelesene E-Mails aus Google Mail abzurufen!
Ich habe ein Tool erstellt, um Slack über Connpass-Ereignisse zu informieren, und es zu Terraform gemacht
Ich habe einen LINE-Bot erstellt, der jeden Tag pünktlich empfohlene Bilder sendet
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt
Die Geschichte, einen Line Bot zu erstellen, der uns den Zeitplan für die Wettbewerbsprogrammierung erzählt
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
[Python] Ich habe einen Web-Scraping-Code erstellt, der automatisch den Nachrichtentitel und die URL von Nihon Keizai Shimbun erfasst.
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Eine Geschichte, die den Aufwand für Betrieb / Wartung reduziert
Ich habe einen Twitter BOT mit GAE (Python) gemacht (mit einer Referenz)
[Python] Ein Programm, das die Anzahl der Täler zählt
Ich habe mit LINE Bot ein Haushaltsbuch für Bot erstellt
〇✕ Ich habe ein Spiel gemacht