【GAS修行①】毎朝天気を教えてくれるLINE BOTをLINE Notifyで作成

【GAS修行①】毎朝天気を教えてくれるLINE BOTをLINE Notifyで作成:

・GAS熟練者への道。

・先人達のコードの「写経&コピー」の駆使の成果物のまとめ。

・第一弾


経緯

・「第一発目だけど、実用的なものを作りたい。」

・「今を振り返ってみて、一発目にこれ選んだ自分に浸りたい。」

・「でも簡単なものがいい。」

→そんな私にぴったりのサンプルアプリと仏様サイトを発見。
https://www.smilevision.co.jp/blog/tsukutte10/

→「これを参考(マルコピ)に作ってみるか。」

→取り組み開始。


概要

  • 毎朝、LINEに下記の内容を通知してくれる。

    • 今日の天候(晴れ、曇りのち雨等)
    • 今日の最高気温 / 最低気温
    • 明日の天候(晴れ、曇りのち雨等)
    • 明日の最高気温 / 最低気温


結果

・実際の画面はこちらです。


image.png



作成環境

  1. Google App Script
  2. LINE Notify
  3. 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」に変更して、二つ左の「▶」ボタンで実行。

  • 通知確認後、指定の時間にコードを実行してもらうために、トリガーを設定。



    • スクリプトエディタのタブメニューの「編集」→ 「現在のプロジェクトのトリガー」をクリック。
    • トリガーを作成して、下記の画像のように設定。
      image.png

    • 保存。
  • 完了。


まとめ

・第一弾としては、凄く実用的なものを作れたと感動。

・今後も、幅広いものを作れるように奮起。


参考

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)