13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Bluemix Node-red上のTwilio APIを使って、天気情報をスマホのSMSに送信してみる

Posted at

#はじめに
Bluemixのnode-redのOutput NodeにTwilioのAPIがあったので試してみました。

今回は、Twilioのトライアルアカウントを使用し、OpenWeatherMapのAPIを叩き、現在の天気と気温を自分のスマートフォンのSMSに送付してみました。朝出かける前に、SMSに天気と気温の情報が飛んでくるとうれしいですよね。

WS000011.JPG

これを実現するアプリはいくらでもあると思いますが、Node-redとTwilio APIを使うことで、ほぼコーディングレスで、30分程度で実現できてしまいます。

#前提 & 注意事項

  • Bluemixは登録済みの前提で記載しています。登録はこのあたりを参考にして下さい。
  • Twilioのトライアルアカウント取得済み。またトライアルアカウントからSMSを送信する際には下記の点に注意が必要です。(こちらの投稿を参考にさせて頂きました。)
    • +81から始まる日本の番号ではSMSは送信できず、+1から始まる米国の電話番号を取得する必要が有る
    • 検証済みの電話番号(自分スマホの番号)にのみSMSを送信可

#Node-Redプロジェクトの準備
BluemixのカタログのボイラープレートからNode-redを選択し、プロジェクト名を入力し、アプリケーションを作成します。

Picture2.png

ステージングが完了後、作成したアプリケーションをダッシュボード上で開き、表示されるURLをクリックし、Node-Redのフローエディタを開きます。
Picture3.png

フローの作成

使うNodeは下記の5種類です。()内はNodeのカテゴリ、及び、使用目的です。

  • Inject ( Input, SMS送信時刻の設定、OpenWeatherMap APIにHttp Get Requestを送信するトリガー)
  • http request ( Function, OpenWeatherMapにHttp Get Requestを送信)
  • function ( function, OpenWeatherMap APIからのJSON Formatの天気情報からSMSメッセージを作成)
  • Twilio ( Output, SMSをスマートフォンに送信)
  • Debug ( Output, デバッグ用の情報の出力)

これらを下記のようにつなぎます。
Picture6.png

各Nodeの設定

1. Inject Node
Repeatの設定を「at a specific time」とし、データがInjectされるスケジュールを設定。ここでは、平日の毎朝7時に、その時点の天気と気温がSMSで送付されるように設定します。

WS000011.JPG

2. http Request
OpenWeatherMapのCurrent Weather Data APIにhttp GET Requestを送信し、現在時点の東京の天気情報を取得します。Nodeのプロパティーを下記のように設定。

  • Method: GET
  • URL: http://api.openweathermap.org/data/2.5/find?q=Tokyo&units=metric
  • Return: a parsed JSON object

WS000012.JPG

3. function
OpenWeatherMapのAPIからは、最高・最低気温やら湿度やら様々な情報がJSON形式で帰ってきます。今回は「晴れなのか、曇りなのか」といった天気の概要と、その時点での気温のみを使用。
Function Nodeの機能としては、JSON形式の返答から天気と気温のValueを取り出し、Messageを作成してそれをReturnする関数を作成すれば良いので、下記のように関数を定義してやればよいです。

var tenki = "現在の天気は" + msg.payload.list[0].weather[0].description + "/";
var kion = msg.payload.list[0].main.temp + "°Cです。";
return {payload: tenki + kion};

4. Twilio
Twilio APIを使用してSMSでを送付するための設定をしていきますが、まず、Twilioにログインし、TwilioのAPI クレデンシャルを確認します。API クレデンシャル情報は「アカウントセッティング」で確認することができます。
Picture8.png

Node-RedのTwilio Nodeで、AccountSID, Authtokenを設定します。また「From」には、取得した米国のtwilio電話番号をセットします。
Picture9.png

「SMS to」には、検証済み電話番号を記入します。この時、電話番号の先頭の「0」は不要で、080で始まる電話番号ならば、国番号をつけて、「+8180********」といったように記載します。
Picture10.png

動作確認

Debug Nodeは特に設定は不要で、Nodeのフローと各Nodeの設定が完了したら、Deployボタンを押すと、稼働準備が完了します。

土日以外07:00に動作するように設定しましたが、Inject Nodeの左側をクリックすることで、Manualで動作させることが可能です。設定がうまく行っていれば、ケータイにその時点の天気と気温がSMSで送られます。
WS000011.JPG

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?