<分散通知の仕組みを作る STEP4: Push7のプッシュ通知>
別ページで表示
LINEや電子メールは双方向の会話の機能があるので、「りんごちゃん」などニックネームで構わないが何らかのID情報が配信側に伝わります。しかし、利用者側には、それすら知られたくない人もいます。
Push7は、ニックネームすら入力不要、です。敷居が低いです。
Push7に似た仕組みは、既にネット上に溢れています。ふだんサイトを見ていると、ヒョコッと顔を出して、「登録しませんか」と誘いかけられ、即座に、×、拒否、NO、不要を返事する、それが条件反射になっているあれです(ブラウザの設定でポップアップを禁止に出来ると思いますが)。
今私は、緊急通知を準備しているので、ポップアップ禁止設定にしたおかげで目にも触れない、というのでは困ります。そこで、サイトの文面の中で、説明を加えて、ボタンを押してもらって申し込んでもらう手順にしています。このPush7のサイトへの設置方法の説明は、長くなるので、この記事では、割愛します。
このSTEP4における配信作業の流れでは、Push7のアプリは何も触りません。
Push7のアプリをスマホから触りたくない理由ですが、プッシュ通知を打ち込むまでの画面の操作が非常に扱いにくい点があります。アプ通知文がSTEP1で作成済みならば、STEP2、STEP3とやることはほぼ同じです。ChromeからGoogleSSを立ち上げる->PC版サイトを選ぶ->iphoneを横向きにする->閉じるをクリック->内容を一応点検したら「Push7投稿」ボタンをクリック。という手順。
Push7のいい点は、管理する側における、利用者の登録や削除については、作業は何もないです。
実に簡単です。
ポイント解説
<1> GoogleSSへの取り込み
Push7で送信する内容のうち、毎回変更されるのは、タイトル、関係リンク、本文の3個です。
この画面には、Googleフォームへ入力した通知文が取り込まれるため、内容を確認するだけです。問題がなければ、「Push7投稿」ボタンを押します。
通知文の読み込み:
IMPORTRANGE関数を使います。
読み込みたいGoogleSSのURLが、下記のようになっていたとして、
https://docs.google.com/spreadsheets/d/【この部分】/edit#gid=0
【この部分】を以下の場所に当てはめてください。sheet1は実際のシート名、A10,A12,A14のところも実際のセル位置を当てはめてください。
Push7では、タイトル、関係リンク、本文の3データを、通知文GoogleSS から読み込んで、このPush7用GoogleSSへ取り込みます。
=IMPORTRANGE("【この部分】","sheet1!A10")
=IMPORTRANGE("【この部分】","sheet1!A12")
=IMPORTRANGE("【この部分】","sheet1!A14")
<2>APIの取得とGAS記述
APIの取得:
Push7は、親切に、API設置方法などが解説されています。
Push7 APIの利用 ←この中の「Webプッシュ通知を送信するAPI」の項目が参考になります。
Push7は、メールアドレスとパスワードで登録できます。次に、プロジェクトを例えば「ABC会_通知」などとつけて設置すると、そのプロジェクトごとに、下記のように、App NumberとAPI Keyが発行されます。
GASの記述:
このままコピペください。赤字は、例示です。
・iconは、ここに指定した画像が選択されて通知に表示されます。
・urlは、表示された通知画面をクリックすると移動するサイトです。
・disappear_instantlyは、falseにすると画面の表示にタッチされるまでは表示が残ります。trueにすると数秒後には消えます。
const notifyPush7 = () => {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
const apikey = "【上画像のAPI Key】"
const appno = '【上画像のApp Number】'
const url = 'https://api.push7.jp/api/v1/【上画像のApp Number】/send';
const headers = {
'Content-Type' : 'application/json; charset=UTF-8',
'Authorization' : 'Bearer ' + apikey,
};
const data = {
'title': sheet.getRange(3,1).getValue(),
'body' : sheet.getRange(7,1).getValue(),
'icon' : "https://***.com/****.jpeg",
'url' : sheet.getRange(5,1).getValue(),
'apikey' : "【上画像のAPI Key】",
'disappear_instantly' : false,
//'transmission_time": "2021/10/10 10:10"
//'query' : true,
}
const options = {
'method' : 'post',
'headers': headers,
'payload': JSON.stringify(data)
};
UrlFetchApp.fetch(url,options);
}
具体的には、以下の、アプリによる送信画面を見て、対応関係を確認ください。
この「タイトル」「URL」「内容」の部分を、STEP1で作った通知文GoogleSSから、自動的に取り込むプログラムになっています。
次回のSTEP5は、Googleが提供するブログであるBloggerへ、同じ通知文を投稿する方法を説明します。割と簡単です。
以上