いももちのきもち

新米プログラマによる技術的メモ

家庭用チャンネルにslackbotを導入して天気調べる【LITE】

【背景】
会社の同期内でSlackのbotを作るのが流行っていたので乗り遅れまいとbotを作った。
しかし後発だとネタも思いつかないし、まずは家庭用チャンネルで始めようと思い典型的な天気予報botを整備した。

【利用したframeworkなど】
slackbot GitHub - lins05/slackbot: A chat bot for Slack (https://slack.com).
具体的なインストール方法や利用方法はQiitaを参考にした。
PythonのslackbotライブラリでSlackボットを作る - Qiita

放置していたさくらVPS上でバックグラウンドプロセスとして実行


天気予報botを作成しよう、ということで以下を参考に作りました。
Pythonを使ってSlack Botを作成してみた - Monthly Hacker's Blog
botがいるチャンネルでtenkiとつぶやくと東京の天気予報を教えてくれます。
HTTPリクエストの扱いにはrequestsモジュールを使っています。
地方の選択は以下のリンクからどうぞ。
http://weather.livedoor.com/forecast/rss/primary_area.xml

import requests

@listen_to('tenki')
def weather(message):
    city_id = '130010' # 東京
    url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=' + city_id
    data = requests.get(url).json()
    text = data['description']['text'].encode()
    message.send(text)