Erstellen Sie ein Konto unter http://openweathermap.org/ und rufen Sie API_KEY auf dem Bildschirm api_keys auf.
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
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.
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
https://bitbucket.org/ponsuke/norths_weather_bot
Recommended Posts