見出し画像

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の仕組みを解説します。
読んでくれた方、ありがとうございました!


この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?