Python × Slackで天気通知ボットを作成してみた

Slackに自動で天気を通知するPythonプログラムを作ってみました!LINE Notifyの終了もあってSlackの機能をもっと使いたいなと思ったことがきっかけです。

目次

やりたいこと

  • 自分用Slackワークスペースに、毎日の天気を通知
  • 天気情報をAPIで取得
  • テキストに合わせて美しく通知
  • Webhook や .env を使って安全に作成

準備したもの

ライブラリ

  • requests
  • python-dotenv

サービス

.env ファイルの中身

SLACK_WEBHOOK_URL=...
OPENWEATHER_API_KEY=...
CITY_NAME=Osaka

実装の歩み

天気情報の取得

OpenWeatherMapの日本語モードを使って、天気説明を日本語で取得します。

Slackへの通知

Webhook URLを.envに格納し、Pythonのrequests で通知を送信します。

天気説明によって美しく表示

天気説明の文字列を判定して、適切な美化アイコンを表示します。

def get_weather_emoji(description):
    if "晴" in description:
        return "☀️"
    elif "曇" in description:
        return "☁️"
    elif "雨" in description:
        return "🌧"
    elif "雷" in description:
        return "⛈"
    elif "雪" in description:
        return "❄️"
    elif "霊" in description or "もや" in description:
        return "🌫"
    else:
        return "🌈"

実行サンプル

【今日の天気@Osaka】
☀️ 天気:晴れ
🌡 気温:18.6℃
💧 湿度:52%

はまったこと & 学び

  • APIキーが有効かどうかは、直接URLで確認すると簡単
  • descriptionが日本語だと英語判定は効かないので、分岐は日本語ベースで考える
  • .env の値が取れているかは os.getenv + printで確認

おわりに

Slack は個人用でも有用な通知ダッシュボードになります!PythonでAPIを取得して、それを美しく表示するだけでも、作るのが楽しくなるので、本当にオススメです!

次は Slack で @Bot をメンションしたら、自動でPythonプログラムが起動して、答えを返してくれるような、もっとインタラクティブな挙動を目指したいです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

日々の記録

コメント

コメントする

CAPTCHA

目次