初心者向けGASでつくるゴミ出しLINE Botの本体部分のスクリプト


main

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

このシリーズでは初心者のノンプログラマー向けに「Google Apps Scriptを使ってゴミ出しLINE Botをつくる」をお題として連載を進めております。

前回の記事はこちら。

初心者向けGASでつくるゴミ出しLINE Bot用のチャネル作成と準備
初心者のノンプログラマー向けに「Google Apps Scriptを使ってゴミ出しLINE Botをつくる」をお題として連載を進めております。今回は、ゴミ出しLINE Bot用のチャネル作成、友だち登録、チャネルアクセストークンの取得などの準備を進めていきます。

ゴミ出しLINE Bot用のチャネルの作成、友だち登録、そしてチャネルアクセストークンの取得など、LINE Developersコンソールでの準備をしました。

今回は、初心者向けGASでつくるゴミ出しLINE Botの本体部分のスクリプトをお伝えします。

あ、ちなみに「本体」に使われている「部品」については次回以降の記事でお伝えしますので、本記事だけでは完結しません…すみません。

では、行ってみましょう!

スポンサーリンク

前回のおさらい

前回は、本格的にゴミ出しLINE Botを作成すべく、LINE Developersコンソールで以下準備を進めました。

  1. 「ゴミ出し通知くん」チャネルの作成
  2. 「ゴミ出し通知くん」の友だち登録
  3. 「ゴミ出し通知くん」のチャネルアクセストークンの取得

ゴミ出し通知くんを友だちとして追加

今回から、GASでスクリプトを作成していくのですが、シリーズの前半でつくった以下の「Hello Bot」のスクリプトを修正しながら作っていきます。

function postMessage() {
  const url = 'https://api.line.me/v2/bot/message/push';
  const token = '**********'; //「Hello」のチャネルアクセストークン

  const payload = {
    to: '*****', //ユーザーID
    messages: [
      { type: 'text', text: 'Hello, world!' }
    ]
  };

  const params = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + token
    },
    payload: JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, params);
}

スクリプトの内容については、以下の記事で徹底解説していますので、復習しておきましょう。

初心者向けGASでLINEにプッシュメッセージを送るスクリプトを徹底解説
初心者のノンプログラマー向けに「Google Apps Scriptを使ってゴミ出しLINE Botをつくる」をお題として連載を進めております。今回は、GASでLINEにシンプルなプッシュメッセージを送るスクリプトを徹底解説していきます。

Hello Botのスクリプトからの変更点

前述の「Hello Bot」ですが、実は以下2つのポイントだけ変更すれば、「ゴミ出しLINE Bot」が完成します…!

  1. 3行目のtokenを「ゴミ出し通知くん」のチャネルアクセストークンに変更する
  2. 8行目のtextプロパティの内容を、曜日によって変わるメッセージとなるようにする

プッシュメッセージを送るという意味では同じですから、ほとんどスクリプトが同じになるんですね。

チャネルとメッセージを変更すればいいだけなんです。

基本を押さえておくって大事ですね~。

ゴミ出しLINE Botのスクリプト本体

ということで、先にゴミ出しLINE Botのスクリプト(本体)を紹介しますと、こちらになります。

function notyfyTakingOutTrash() {
  const url = 'https://api.line.me/v2/bot/message/push';
  const token = '**********'; //「ゴミ出し通知くん」のチャネルアクセストークン

  const message = getMessageAboutTrash_(new Date());
  if (!message) return; 

  const payload = {
    to: '*****', //ユーザーID
    messages: [
      { type: 'text', text: message }
    ]
  };

  const params = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + token
    },
    payload: JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, params);
}

ちなみに、関数名も「notyfyTakingOutTrash」に変更しています。

以下解説をしていきますね。

チャネルアクセストークンを変更する

まず、3行目ですが、tokenを「ゴミ出し通知くん」のチャネルアクセストークンに変更しました。

チャネル(通り道)が変更になっているので、その許可証の役割を果たすチャネルアクセストークンも当然別のものになります。

ただ一方で、9行目のユーザーIDは、変更なしでOKです。ユーザーは同じ人ですからね。

メッセージの内容を変更する

11行目のtextプロパティの内容つまりメッセージを変更し、定数messageとしています。

その定数messageの中身は、5行目のgetMessageAboutTrash_関数で生成するという仕組みにしています。

関数というのは、処理をまとめたもので、呼び出すと決められた処理をして、何らかの値を返すようにつくることができます。

今回でいうと、曜日によって「本日は●曜日!☓☓ゴミの日ですよ~」という文字列を生成して返してくれるようにつくります。

この関数が本スクリプトのキモになるのですが、今後の記事で詳しくお伝えします。

メッセージが値なしならスクリプトを終了する

さらに、6行目ですが、曜日によって以降の処理をせず終了するようにしています。

ゴミ出しの必要がない曜日もありますもんね。

その仕組を説明しますね。

まず、getMessageAboutTrash_関数は、何らかのゴミの日であればその文字列を、そうでないときは「値なし」を表す「undefinded」を返すように作られています。

それが、定数messageに格納されます。

if文の条件式は、定数messageに!演算子が付与されてますから、定数messageの反転したものの判定になります。

今回の場合は、以下の2通りのいずれかになるわけです。

  • 1文字以上の文字列はtrue → その反転はfalse
  • undefinedはfalse → その反転はtrue

つまり、定数messageが「値なし」、つまりundefinedのときに、return文が実行されます。

return文は、本来「値を返す」命令として使われるのですが、それとともに実行中の関数を終了するという特性もあります。

なので、ここでreturn文が実行されると、関数notyfyTakingOutTrashが終了するというのと同様なんです。

まとめ

以上、初心者向けGASでつくるゴミ出しLINE Botの本体部分のスクリプトについてお伝えしました。

あとは、メッセージを生成するgetMessageAboutTrash_関数の中身がわかればOKということになりますね。

次回は、その部分についてお伝えしていきますよ。

【初心者向け】GASで日付から何のゴミの日かを調べる関数のつくり方 for ゴミ出しLINE Bot
初心者のノンプログラマー向けに「Google Apps Scriptを使ってゴミ出しLINE Botをつくる」をお題として連載を進めております。今回は、GASで日付から何のゴミの日かを調べる関数のつくり方と題して、その日がその月で何回目の曜日か調べる、日本語表記の曜日の取得するなどの関数を紹介します。

どうぞお楽しみに!

連載目次:【初心者向け】GASでゴミ出しLINE Botをつくる

われわれ日本人がもっとも使っているといってもいいアプリ「LINE」。Google Apps Scriptを使うと、LINEを使ったツールをつくりこともできます。このシリーズでは、初心者向けに「ゴミ出しLINE Bot」のつくりかたをお伝えしていきます!
  1. GASでLINEにメッセージを送るためのMessage APIの超初心者向け基礎知識
  2. 初心者向けLINE Developersコンソールとそれにログインする方法
  3. 【初心者向け】GASでゴミ出しLINE Botをつくるための「チャネル」とその作成
  4. 初心者向けLINE Botの友だち登録とユーザーID・アクセストークンの取得
  5. 初心者向けGASを使ってLINEではじめてのプッシュメッセージを送るスクリプト
  6. 初心者向けGASでLINEにプッシュメッセージを送るスクリプトを徹底解説
  7. 初心者向けGASでつくるゴミ出しLINE Bot用のチャネル作成と準備
  8. 初心者向けGASでつくるゴミ出しLINE Botの本体部分のスクリプト
  9. 【初心者向け】GASで日付から何のゴミの日かを調べる関数のつくり方 for ゴミ出しLINE Bot

タイトルとURLをコピーしました