<分散通知の仕組みを作る STEP3: LINEのメッセージ配信>
別ページで表示
iPhoneのLINE公式アカウントアプリには、「メッセージを配信する」機能があり、扱い易いです。しかしその扱いやすさの程度ですが、アプリを開く->「メッセージ配信する」をクリック->追加をクリック->テキストを選ぶ->テキストをコピペする->次へ->「すべての友だち」を選択して配信。という手順。
確かにほとんど悩むことなく進めますが、やはり、余分なことを神経を使いながら覚える、そんな印象。
このSTEP3における配信作業の流れでは、LINEのアプリは何も触りません。通知文がSTEP1で作成済みならば、STEP2とやることはほぼ同じです。ChromeからGoogleSSを立ち上げる->PC版サイトを選ぶ->iphoneを横向きにする->閉じるをクリック->内容を一応点検したら「LINE投稿」ボタンをクリック。という手順。
LINEのいい点は、管理する側では、友だちの登録や削除などの作業は、何もないです。
実に簡単です。
ポイント解説
<1> GoogleSSへの取り込み
送信する内容はコンパクトに、LINEの吹き出し1個だけです。
この画面には、Googleフォームへ入力した通知文が取り込まれるため、内容を確認するだけです。問題がなければ、「LINE投稿」ボタンを押します。
通知文の読み込み:
IMPORTRANGE関数を使います。
読み込みたいGoogleSSのURLが、下記のようになっていたとして、
https://docs.google.com/spreadsheets/d/【この部分】/edit#gid=0
【この部分】を以下の場所に当てはめてください。sheet1は実際のシート名、A20のところも実際のセル位置を当てはめてください。
LINEでは、吹き出し枠一つの中に、タイトル〜本文〜関係リンクを一まとめにして入れています。
=IMPORTRANGE("【この部分】","sheet1!A20")
<2>APIの取得とGAS記述
APIの取得:
LINE公式アカウントを取得すると、そのユーザーIDで、下記のLINE Developersにログインして、LINE Messaging APIのアクセストークンを取得します。
GASの記述:
このままコピペください。赤字は、例示です。
const notifyLine = () => {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
// LINE DevelopersのChannel Access Tokenを【アクセストークン】へ入れます。
const ACCESS_TOKEN = "【アクセストークン】"
// LINE Developersの自分のユーザーIDを【ユーザーID】へ入れます。
const USER_ID = '【ユーザーID】'
const url = 'https://api.line.me/v2/bot/message/broadcast';
const headers = {
'Content-Type' : 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN,
};
const message = sheet.getRange(3,1).getValue();
const data = {
'messages' : [
{
'type':'text',
'text':message,
}
]
};
const options = {
'method':'post',
'headers': headers,
'payload':JSON.stringify(data)
};
UrlFetchApp.fetch(url,options);
}
「みんな」に対してメッセージ配信する場合は、上記のように、APIの最後の部分にbroadcastを使います。
iPhoneで使う時は、STEP2と同様に、上記のGoogleSSのLINE投稿ファイルを、今度はiPhoneで呼び出してから「PC版サイトを見る」を選択->iPhoneを横向きにする->上段に出る警告を「閉じる」->「LINE投稿」のボタンを押す。と、同じ手順になります。
次のSTEP4では、Push7の新規プッシュ通知を、Push7のアプリを何も触らないで実行する方法を説明します。考え方はLINEと同じです。
以上