6
8

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 3 years have passed since last update.

【GAS】特定の場所の天気予報を指定の日まで毎日お知らせしてくれるLineBot(後編)

Last updated at Posted at 2021-10-24

はじめに

当記事はGASからOpenWeatherMapを用いて、お天気LineBotを作成した記事の後編です。
前編→こちら

後編の内容はそこまでないとはいえ遅くなって申し訳ありませんでした。(期待している人なんていない)

各所に変なコードの記述や分かりにくい部分があるかもしれませんが、優しくご指摘いただけると幸いです。
また、GitHubにもコードをあげてみたので万が一物好きな方がいれば見てみてください。

どういうもの?

こんな感じです。

IMB_vHcKzO.gif

簡単に説明すると、

  1. 地名を入力する。
  2. 入力した地名の住所が表示され、合っているか聞かれる。
  3. はいを選択した場合は日付ピッカーが表示され、選択して送信するとスプレッドシートに登録され、現在発表されているその日その地点の天気を教えてくれる。
  4. いいえを選択した場合は泣いて許しを請います😭
  5. 「確認」と入力すると、現在登録されている日時・地点の天気予報を教えてくれます。
  6. 朝7時ぐらいに自動的に現在登録されている日時・地点の天気予報を教えてくれます。

作成

作成手順を記します。
大まかな流れは以下の通りです。

タスク 記事
①各種APIキーを集める。 前編
②めっちゃコード書く。 前編
③LINE Developersに登録する。 後編
④定期作業のトリガーを設定する。 後編

③LINE Developersに登録する。

前回、大量に書いたコードをLINE Developersに登録する必要がありますが、その前にちゃんとLINEと連携できるかを確認します。

LINE アクセストークンを取得した際に表示されるQRコードを読み取って、あらかじめ友達登録をしておきます。
スクリーンショット 2021-09-21 17.10.24.png
test.gsに以下のコードを書いてみます。

test.gs
// LINE Message API アクセストークン
let ACCESS_TOKEN_TEST = "[前回の①各種APIキー集める。で取得したLINEのアクセストークン]";

function test() {

  try{
    UrlFetchApp.fetch("https://api.line.me/v2/bot/message/broadcast", {
    
      method: "post",
      headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + ACCESS_TOKEN_TEST,
      },
      payload: JSON.stringify({
        messages: [
          {
              type: 'text',
              text: 'メッセージテスト'
          },
        ]
      }),
    });
  } catch (e) {
    logger(e);
  };
}

スクリプトエディタの実行ボタンを押下します。
スクリーンショット 2021-10-25 1.09.46.png

LINEに以下のちゃんとメッセージが送られることを確認します。
IMG_7558.jpeg

確認がとれたら、デプロイから新しいデプロイを押下します。
スクリーンショット 2021-10-25 1.14.40.png

特に何も変更せずデプロイボタンを押下します。
スクリーンショット 2021-10-25 1.15.32.png

ウェブアプリコピーボタンを押下します。
スクリーンショット 2021-10-25 1.16.19.png

LINE DevelopersMessaging API設定を押下し、Webhook設定Webhook URLに先ほどコピーしたURLを貼り付けます。
スクリーンショット 2021-09-22 0.32.23.png

その後表示される検証ボタンできちんとURLが生きているか調べることもできます。

動作を確認してみます。

IMG_7562.png

IMG_7563.png

きちんと登録されましたね!!

LINEに発言するたびに余計な返信がある場合はMessaging API設定応答メッセージ編集応答設定詳細設定応答メッセージ設定からステータスをオフにすれば余計な返答が無くなります。
スクリーンショット 2021-10-25 2.01.56.png

これでLINE Developersへの登録方法は終了です。

④定期作業のトリガーを設定する。

スクリプトエディタの左側のトリガー(目覚まし時計マーク)を押下し、トリガーを追加ボタンを押下します。
すでに一つトリガーを設定したものがありますが、気にしないでください。
スクリーンショット 2021-10-25 1.25.24.png

以下のように登録します。

項目
実行する関数を選択 regularWork
イベントのソースを選択 時間主導型
時間ベースのトリガーのタイプを選択 日付ベースのタイマー
時刻を選択 お好きな時間を

スクリーンショット 2021-10-25 1.29.41.png

  • 実行する関数reglarWorkを定期的に実行したいので設定します。
  • 時刻を選択`はだいたい下限ギリギリの時間にきます。

保存ボタンを押せば完成です!
IMG_7560.png
毎朝8時前にモーニング天気予報をしてくれます!
(写真は名前が微妙に違いますが、同じ機能のものです。説明用に一から作ったものを今まで写真で示しています。)

後編 おわりに

色々と時間が取れずに後編の執筆が滞り申し訳ありませんでした。
初めて本格的なLINE Botを作れてとりあえず満足しています。
特に苦労したところはLINE Botの設定等ではなく、日本標準時やUNIX時間や世界標準時…時間の変換の作業でした。
コードがおかしかったりもっとこうした方がいいよ!等ありましたらご指摘していただくと幸いです。
長々と見てくださりありがとうございました。

便利だったサイトやアドオン等

6
8
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
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?