GoogleフォームとLINEを連携~プログラム編~
こんばんは、Hiroyaです。
いつも記事を読んでいただきありがとうございます。
今回は、以前書いた「GoogleフォームとLINEを連携」の続きとして投稿します。ぜひ、過去の記事も読んでいただきたいです。理解度が深まります。
簡単に解説をすると、GASとLINE Notifyを利用することで、Googleフォームの回答をLINEへ連携することができる機能です。
今回はプログラムの解説ということで、今回簡易的に作成したGASの記載内容を解説していきます。
※GAS=Google Apps Script
JavaScriptを利用して開発をすることができます。
プログラム
//スプレッドシートIDを入力します
var ss = SpreadsheetApp.openById("スプレッドシートのID");
//シート名に変更します
var sh = ss.getSheetByName("集計");
//最終行の番号を取得する
var lastRow = sh.getLastRow();
//二次元配列を取得する(行番号、列番号、行数、列数)
var table = sh.getRange(1,1,lastRow,10).getValues();
function notice() {
//LINEで送信したい文章を変数contentに格納する。
if (table[lastRow-1][1].includes("参加")){
var content ="申し込みがありました。";
}else if(table[lastRow-1][1].includes("キャンセル")){
var content ="キャンセルがありました。";
}else{
return;
}
//関数sendHttpPost_noticeに変数contentを渡して起動する
sendHttpPost_notice(content);
}
//LINE Notifyへ通知するためのスクリプト
function sendHttpPost_notice(content){
//LINE Notifyのトークンを入力します
var token = ["LINE Notifyのトークン"];
var options =
{
"method" : "post",
"payload" : "message=" + content,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
①まず、最初の一文について、
スプレッドシートのIDはURLの下記の部分を記載します。
「https://docs.google.com/spreadsheets/d/”この部分がスプレッドシートID”/edit」
②下記の一文は、スプレッドシートのシート名を入れます。
var sh = ss.getSheetByName("集計");
③「getLastRow」という関数で最終行の番号を取得しています。
var lastRow = sh.getLastRow();
④ここではスプレッドシート内で読み込む範囲を指定します。
1行目から最終行まで、1列目から10列目までを指定しています。
var table = sh.getRange(1,1,lastRow,10).getValues();
⑤最新のスプレッドシートの記載に対して、「参加」か「キャンセル」か判別をします。
function notice() {
if (table[lastRow-1][1].includes("参加")){
var content ="申し込みがありました。";
}else if(table[lastRow-1][1].includes("キャンセル")){
var content ="キャンセルがありました。";
}else{
return;
}
⑥「content」を引数に下の関数を実行しています。
sendHttpPost_notice(content);
⑦こちらの関数にて、LINEの通知を行っています。
function sendHttpPost_notice(content){
var token = ["LINE Notifyのトークン"];
var options =
{
"method" : "post",
"payload" : "message=" + content,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
今回は以上ですが、また次回にLINE Notifyの仕組みを解説します。
読んでくれた方、ありがとうございました!