【GAS】分散通知の仕組みを作る〜Googleアプリ、GAS及びAPIの活用 STEP5: ブログ(Blogger)への投稿・全体まとめ(5/5)


<分散通知の仕組みを作る STEP5: ブログ(Blogger)への投稿>
別ページで表示


ブログは、時系列の掲示板であり、その中には、今回取り上げている緊急通知も含めていいと考えています。記事の性格は、楽しい思い出づくりとは異なりますが、緊急かつ重要な情報は、どこにでも飛び込んでいいものと考えます。

今回、無料のブログの選択には、多少悩みました。この種のサービスは打ち切りになることが多いからです。その中から、Googleと相性がいいもの、シンプルなもの、であるBloggerを選択しました。Bloggerは他のサービスへの移動、例えばWordPressへの移動などについても、説明が数多くあることも安心です。

ポイント解説

<1> GoogleSSへの取り込み

流れとしては、通知文GoogleSS→Blogger送信用GoogleSS→Blogger、です。APIは使いません。Bloggerにはメール投稿機能が備わっており、それを利用します。

Blogger送信用GoogleSSの画面は以下です。

この画面には、Googleフォームへ入力した通知文GoogleSSが取り込まれるため、内容を確認するだけです。問題がなければ、「Blogger投稿」ボタンを押します。

通知文の読み込み:

IMPORTRANGE関数を使います。
読み込みたいGoogleSSのURLが、下記のようになっていたとして、

https://docs.google.com/spreadsheets/d/【この部分】/edit#gid=0

【この部分】を以下の場所に当てはめてください。sheet1は実際のシート名、A10,A12のところも実際のセル位置を当てはめてください。

Bloggerでは、タイトル、本文と関係リンク、の2データを、通知文GoogleSS から読み込んで、このBlogger用GoogleSSへ取り込みます。

=IMPORTRANGE("【この部分】","sheet1!A10")
=IMPORTRANGE("【この部分】","sheet1!A12")

<2>GAS記述

GASの記述:

このままコピペください。赤字は、例示です。

STEP2の電子メールと、考え方は同じです。

nihonnofujisan001は、google個人アカウントです。
・投稿用のメールアドレスが、Bloggerから与えられます。その時【任意の文字列】を設定します。

function sendMail(){
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const from = 'nihonnofujisan001@gmail.com';
  const to = 'nihonnofujisan001.【任意の文字列】@blogger.com';
  const subject = sheet.getRange(3,1).getValue();
  const body = sheet.getRange(5,2).getValue();
GmailApp.sendEmail(to, subject, body);
}

<3>なぜ30分以内?:

ブログ(ネット掲示板)をユーザーが見るのを30分以内、としているのは、ブログには、Push7からRSS連携:

赤字は、例示です。

https://nihonnofujisan001.blogspot.com/feeds/posts/default

を貼り付けています。こうしたRSSフィードは、様々なサービスがあるので、もっと短い巡回時間のものもあると思います。一応、Push7の巡回は30分以内となっています。30分以内は標準的かと思います。

ちなみに私は、Push7を、ブログ更新とは切り離した緊急通知用と、ブログ更新とリンクした一般通知用の2箇所に貼り付けています。

<4>全体のまとめ

1)配信数の制約に注意。緊急通知だけなら、会員700人以下なら無料で運用できそう。

サービス名無料:同時に1回何通まで無料:日・月の合計数の上限想定最大通知数想定利用者上限(歩留り70%)
Googleグループメール 500通500通/日週2回175人
LINE公式アカウント1000通/月週2回88人
Push75000通/月週2回437人
合計700人

現在、私は、全世帯が、3つから1つだけ選んで登録するとして、600〜700世帯を想定しています。トータルとしては、この3つのサービスで、お金をかけずに続けそうですが、自由に選んでもらうとLINEに集中するのでは。LINEの無料のワクは非常に小さいです。後でPush7やメールへ変更を促すことになるのでしょうかね。いずれにしても、緊急通知は一方通行、仮に事態が集中したとしても週2〜3回に収まるのではないでしょうか。

緊急通知の配信基準を設けておく必要があるでしょう。

例として、


・水害・土砂災害における避難警戒レベル3以上の発令に伴い、自治体から、当該地域あてに発出された情報。

・地域の災害対策組織の長(自治会長や町内会長など)が決定した配信情報。例えば、道路の陥没、建物の倒壊、断層など上部自治体の危険箇所情報からこぼれ落ちた地域住民向けの情報。

・事件事故の発生に伴い、警察消防から発出された、地域住民への警戒情報。

・その他、自治体から要請があり当該長が了承した緊急通知。例えば、同報無線の能力不足、故障時の支援も含む。


など。何がどう重なるか分かりませんが、不幸が重なったとしても週2〜3回で収まると、私は想像します。

しかし世帯数が1,000世帯を超えるようだと、レンタルサーバーを使うなど、有料にならざるを得ないのでは。

理想的には、500〜600世帯ごとに、このような仕組みが運営できれば、機動的でしょう。

2)異なったサービスだが、操作方法は統一する。その上で、一つ一つ、送信成功を確かめながら送るのがいい。

今回の、分散通知ですが、使用頻度が非常に低いです。防災などの緊急通知が主目的。そんな災害は頻繁にはないです。ですから、わかりやすく言えば、この仕組みの使い方を忘れた頃、突然、使うことになるのだと想像します。従って、覚える操作方法は一つだけにすること。そしてそれを、それぞれのサービスに適用して、送信出来るようにしておくのが重要だと考えます。

3) GoogleSSをアプリ毎に別ファイルにした理由

アプリ側はそれぞれ異なる会社のサーバーになります。全体が一箇所のトラブルに巻き込まれないように、GoogleSSは、シート別ではなく、ファイル別に用意しました。

4)目標:緊急通知を、スマホから、13分以内で、700人へ送る仕組みを、タダで作る。

今回、この目標を達成できたような気もしていますが、実用上、どうなるかはわかりません。

今回、私のブログを読んで下さった方は、私同様、開発費もタダにすることができると思います。これからも工夫改善は続きます。

STEP1へ戻る

以上