【GAS修行①】毎朝天気を教えてくれるLINE BOTをLINE Notifyで作成
【GAS修行①】毎朝天気を教えてくれるLINE BOTをLINE Notifyで作成:
・GAS熟練者への道。
・先人達のコードの「写経&コピー」の駆使の成果物のまとめ。
・第一弾
・「第一発目だけど、実用的なものを作りたい。」
・「今を振り返ってみて、一発目にこれ選んだ自分に浸りたい。」
・「でも簡単なものがいい。」
→そんな私にぴったりのサンプルアプリと仏様サイトを発見。
https://www.smilevision.co.jp/blog/tsukutte10/
→「これを参考(マルコピ)に作ってみるか。」
→取り組み開始。
・実際の画面はこちらです。
※以下の項目を自分のものに変えるのを忘れない。
・LINE Notifyのアクセストークン(先程メモしたもの。)
・取得したい地域ID
・通知されるメッセージ
※取得したい地域・ID一覧・・・・定義表
※他の表示情報一覧・・・・仕様
・第一弾としては、凄く実用的なものを作れたと感動。
・今後も、幅広いものを作れるように奮起。
・GAS熟練者への道。
・先人達のコードの「写経&コピー」の駆使の成果物のまとめ。
・第一弾
経緯
・「第一発目だけど、実用的なものを作りたい。」・「今を振り返ってみて、一発目にこれ選んだ自分に浸りたい。」
・「でも簡単なものがいい。」
→そんな私にぴったりのサンプルアプリと仏様サイトを発見。
https://www.smilevision.co.jp/blog/tsukutte10/
→「これを参考(マルコピ)に作ってみるか。」
→取り組み開始。
概要
- 毎朝、LINEに下記の内容を通知してくれる。
- 今日の天候(晴れ、曇りのち雨等)
- 今日の最高気温 / 最低気温
- 明日の天候(晴れ、曇りのち雨等)
- 明日の最高気温 / 最低気温
結果
・実際の画面はこちらです。
作成環境
- Google App Script
- LINE Notify
- livedoor Weather Hacks
手順
- Googleドライブからスクリプトエディタを起動。
※Googleアカウントを持っていない人は、作成する。
- Googleドライブを起動
- 「新規」→ 「その他」→「アプリを追加」の順にクリック。
- アプリ検索欄に「script」と入力して検索。
- 検索結果に「Google Apps Script」が表示されるので、そこの「接続」ボタンをクリック
- 改めて「新規」→ 「その他」の順にクリックしていくと、「Google Apps Script」が表示されているので、クリック。
- 起動したプロジェクトに名前をつける
※プロジェクト名が反映されるわけではないが、自分がわかる名前をつける。
→保存されたら一旦置いておく。 - LINE Notifyのトークンを発行。
-
LINE Notifyにアクセスして、自分のLINEアカウント情報でログイン。 - ログイン後、マイページを開く。
- マイページ内の「トークンを発行する」ボタンをクリック
- 「トークン名」「通知先のトークルーム」を設定する。
- 設定後、「発行する」ボタンをクリックして、トークンを発行。
- 発行されたトークンをコピーして、控えておく。
-
- LINE Notifyを設定したトークルームに招待する。
- 先程のスクリプトエディタに戻り、下記のコードをコピーして、保存。
line-weather.gs
// 「ACCESS_TOKEN」をLINE Notifyのアクセストークンに書き換え。 var ACCESS_TOKEN= "LINE Notifyのアクセストークンを書く。"; function weatherForecast() { // 「city = id」を取得したい地域のidに置き換える(例、東京:130010) var response = UrlFetchApp.fetch("http://weather.livedoor.com/forecast/webservice/json/v1?city=130010"); var json=JSON.parse(response.getContentText()); /* 通知されるメッセージ 他に欲しい情報があったら追加する。 */ var strBody = json["location"]["city"] + "の天気"+ "\n"; strBody = strBody + "天候: " + json["forecasts"][0]["telop"] + "\n"; strBody = strBody + "最高気温: " + json["forecasts"][0]["temperature"]["max"]["celsius"] + "度" + "\n"; strBody = strBody + "明日の天候: " + json["forecasts"][1]["telop"] + "\n"; strBody = strBody + "明日の最高気温: " + json["forecasts"][1]["temperature"]["max"]["celsius"] + "度" + "\n"; strBody = strBody + "明日の最低気温: " + json["forecasts"][1]["temperature"]["min"]["celsius"] + "度"; sendToLine(strBody); } // LINE送信処理 function sendToLine(text){ var token = ACCESS_TOKEN; var options = { "method" : "post", "payload" : "message=" + text, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); }
・LINE Notifyのアクセストークン(先程メモしたもの。)
・取得したい地域ID
・通知されるメッセージ
※取得したい地域・ID一覧・・・・定義表
※他の表示情報一覧・・・・仕様
- 自分のコードに書き換えて保存後、「weatherForecast」関数を実行して、通知確認。
- スクリプトエディタ内の上部メニューの「関数名」の部分を「weatherForecast」に変更して、二つ左の「▶」ボタンで実行。
-
通知確認後、指定の時間にコードを実行してもらうために、トリガーを設定。
- 完了。
まとめ
・第一弾としては、凄く実用的なものを作れたと感動。・今後も、幅広いものを作れるように奮起。
参考
-
https://www.smilevision.co.jp/blog/tsukutte10/
→ほぼこのサイトで完結。大変お世話になりました。 -
https://blog.apibank.jp/use_how-api/
→APIの仕組みがまとめられている。
コメント
コメントを投稿