こんにちは、天気の子 ばにゃです。
本記事では IFTTT を使用して、Slack に天気予報の情報を投稿する方法について解説します。
天気予報情報は Weather Underground というリアルタイムの気象情報を提供する商業気象サービスを利用します。
IFTTTとは?といったような、基本的な説明は本記事には記載しません。
- IFTTT と Weather Underground を使用して天気予報を Slack に投稿する方法
事前準備
IFTTT アカウントのサインアップ
まず IFTTT アカウントのサインアップを行います。
- https://ifttt.com/ にアクセスします。
- Sign up をクリックします。
- Apple、Google、Facebook、いずれかのアカウントを使用してサインアップを行います。
今回はGoogleアカウントを使用するため「Continue with Google」をクリックします。 - 使用するGoogleアカウントを選択します。
- パスワードを入力して「次へ」をクリックします。
- Get Started 画面が表示されることを確認します。
以上でIFTTTアカウントのサインアップは完了です。
Slack ワークスペースの作成
以下の記事を参考にSlack ワークスペースの作成を行ってください。
Slcak 天気予報投稿用チャンネルの作成
天気予報を投稿するチャンネルを作成します。既存のチャンネルを使用しても問題ありません。
- Slackワークスペースを起動します。
- チャンネルの右に表示される「+」をクリックします。
- 「チャンネルを作成する」をクリックします。
- 適当なチャンネル名を入力し「作成」をクリックします。
- 必要に応じて設定を変更し「終了」をクリックします。
- 新しくチャンネルが作成されたことを確認します。
以上でチャンネルの天気予報投稿用のチャンネル作成は完了です。
IFTTT Slack 連携手順
SlackにIFTTTアプリを追加
IFTTTからSlackへメッセージを投稿できるように、SlackにIFTTTアプリの追加を行います。
- 「Slackチャンネル名」>「設定と管理」>「アプリを管理する」をクリックします。
- slack app directory 画面が開くので、画面右上の検索フィールドに「ifttt」と入力し Enter キーを押下します。
- 検索結果に表示される IFTTT をクリックします。
- IFTTT アプリ画面が開くので「追加」をクリックします。
- https://ifttt/slack 画面に遷移するので「Connect」をクリックします。
- IFTTT から Slack へのアクセス許可リクエスト画面が開くので「許可する」をクリックします。
- 再度 https://ifttt/slack 画面に遷移し「Service connected successfully!」と表示されることを確認します。
以上で IFTTT アプリの追加は完了です。
IFTTTでアプレットを作成
IFTTT 側で「Weather Underground を使用して Slack のチャンネルに天気予報を投稿する」という設定を作成します。
※IFTTT側で作成するこのような設定をアプレット(もしくはレシピ)と呼びます。
- https://ifttt.com/ にアクセスします。
- サインインしていない場合はサインインします。
- 画面右上の「Create」をクリックします。
- Create your own 画面が表示されるので「If This (Add)」をクリックします。
- Choose a service 画面が表示されるので検索フィールドに「weather underground」と入力し、表示される「Weather Underground」をクリックします。
- Choose a trigger 画面が表示されるので「Today’s weather report」をクリックします。
- Connect service 画面が表示されるので「Connect」をクリックします。
- Complete trigger fields 画面が表示されるので、初期設定のまま「Create trigger」をクリックします。※細かい設定は後でまとめて変更します。
- Create your own 画面が表示されるので「Then That (Add)」をクリックします。
- Choose a service 画面が表示されるので検索フィールドに「slack」と入力し、表示される「Slack」をクリックします。
- Choose an action 画面が表示されるので「Post to channel」をクリックします。
- Which channel? で投稿先チャンネルを選択し、その他は初期設定のまま「Create action」をクリックします。※細かい設定は後でまとめて変更します。
- Create your own 画面が表示されるので「Continue」をクリックします。
- Review and finish 画面が表示されるので「Finish」をクリックします。
- 作成したアプレット画面が表示されます。
以上でアプレットの作成は完了です。この後、作成したアプレットの細かい設定変更を行います。
アプレットの設定変更
アプレットの初期設定では温度が華氏で表示されていたりと分かりにくい状態になっているため、細かい設定変更を行います。
作成したアプレット画面右上に表示される「Settings」をクリックして設定変更画面を開きます。
各設定の変更手順は以下を参考にしてください。設定変更後「Save」をクリックして、設定変更は完了です。
アプレット表示名
Edit title よりアプレットの表示名を適当なものに変更します。
※ここでは天気予報という名前に変更しています。
気象情報取得時間・ロケーション
Today’s weather report より 気象情報取得時間、気象情報取得場所を設定します。
※ここでは AM 7:30 に東京駅の気象情報を取得する設定にしています。
投稿内容
Post to channel の Message より、Slack に投稿するメッセージの内容を設定します。
例えば Message 部分を以下のように記載すると、現在の天気、現在の気温、最高気温(摂氏)、最低気温(摂氏)の情報を投稿することが可能です。
現在の天気:{{CurrentCondition}}<br>
現在の気温:{{CurrentTempCelsius}}℃<br>
最高気温 :{{HighTempCelsius}}℃<br>
最低気温 :{{LowTempCelsius}}℃
実際にSlackに投稿されるメッセージは以下のようになります。
IFTTTアプレット内の {{ }} で囲まれた部分に書く値は他に以下のようなものがあるので、自由にカスタマイズ可能です。
項目 | 説明 |
---|---|
SunriseAt | 日の出時間 |
CurrentTempFahrenheit | 現在の気温(華氏) |
CurrentTempCelsius | 現在の気温(摂氏) |
CurrentCondition | 現在の天気 |
CurrentConditionImageURL | 現在の天気画像の URL |
TodaysConditionImageURL | 今日の天気画像の URL |
ForecastUrl | Weather Underground の URL |
TodaysCondition | 今日の天気 |
HighTempFahrenheit | 最高気温(華氏) |
HighTempCelsius | 最高気温(摂氏) |
LowTempFahrenheit | 最低気温(華氏) |
LowTempCelsius | 最低気温(摂氏) |
UvIndex | UV指数 |
Humidity | 湿度 |
WindSpeedMph | 風速(Mph) |
WindSpeedKph | 風速(Kph) |
WindDirection | 風向き |
PollenCount | 花粉飛散量 ※米国のみ |
CheckTime | チェック時間 |
また実際に出力される内容を確認したい場合、Message 部分に以下のように入力して投稿される内容を確認すると比較的見やすいと思うので、試してみてください。
SunriseAt:{{SunriseAt}}<br>
CurrentTempFahrenheit:{{CurrentTempFahrenheit}}<br>
CurrentTempCelsius:{{CurrentTempCelsius}}<br>
CurrentCondition:{{CurrentCondition}}<br>
CurrentConditionImageURL:{{CurrentConditionImageURL}}<br>
TodaysConditionImageURL:{{TodaysConditionImageURL}}<br>
ForecastUrl:{{ForecastUrl}}<br>
TodaysCondition:{{TodaysCondition}}<br>
HighTempFahrenheit:{{HighTempFahrenheit}}<br>
HighTempCelsius:{{HighTempCelsius}}<br>
LowTempFahrenheit:{{LowTempFahrenheit}}<br>
LowTempCelsius:{{LowTempCelsius}}<br>
UvIndex:{{UvIndex}}<br>
Humidity:{{Humidity}}<br>
WindSpeedMph:{{WindSpeedMph}}<br>
WindSpeedKph:{{WindSpeedKph}}<br>
WindDirection:{{WindDirection}}<br>
PollenCount:{{PollenCount}}<br>
CheckTime:{{CheckTime}}<br>
コメント