LINEで簡易予約システム-予約・キャンセルの通知を受け取る

予約システムは、お客様と予約ロボットとのLINEメッセ―ジのやり取りです。直接見ることはできません。スプレッドシートを確認するか、常に予約のチェックをするしかありません。これでは忙しいときは大変です。予約やキャンセルがあったときに、管理者宛にLINE通知があれば便利です。

そこで予約・キャンセル時、管理者宛メッセージ配信する機能を追加しました。通常LINEは受け取ったメッセージに対して返信します。今回はメッセージを受け取ってない相手(管理者)宛にメッセージを送る機能(PUSH配信)を追加します。

メッセージを送るには、管理者のID(宛先ID)が必要になります。今まではこれを取得してませんでしたので、これを取得しスプレッドシートのセルに格納しておきます。今回はセル”G2”にIDを格納することにします。

追加スクリプト(管理者IDの格納)

//管理者メニュー
  if(odrNum==pass||adminName==nickname){
      var mess1 = nickname + '様\n管理者でログインしています。\n';
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = spreadsheet.getActiveSheet();
       sheet.getRange(1, 7).setValue(nickname);
       sheet.getRange(2, 7).setValue(user_id);
      var range = sheet.getRange(1,1,number,3);
      var value = range.getValues();
      var cnt = 0;

太字の部分を追加記述します。これで管理者のIDが格納されます。予約・キャンセルのメッセージをこのID 宛に配信します。

追加スクリプト(配信用のメッセージを作成)予約・キャンセルとも作成します。

キャンセルメッセージ

 case '2':
      var reply = '予約をキャンセルします。\n';
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = spreadsheet.getActiveSheet();
      var range = sheet.getRange(1,1,number,2);
      var value = range.getValues();
      for(let i = 0; i <= (number-1); i++){
       if(value[i][1]==nickname){
        mess2 = mess2 + value[i][0] + ' ' + value[i][1] + '様の予約をキャンセルしました。\n';
        sheet.getRange(i+1,2).clear();
       var pushmsg = value[i][0] + value[i][1] + '様の予約をキャンセルしました。';
        pushMessage(pushmsg);
        }  
        }
           mess2 = mess2 + '\n 1ご予約 2キャンセル 3予約確認 \n 番号のみ返信してください。\n';
  break;

太字部分を追加します。これが配信されるキャンセルメッセージです。

予約メッセージ

 case '5':
      var reply = nickname + '様、予約処理の結果です。\n';
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = spreadsheet.getActiveSheet();
      var range = sheet.getRange(1,1,number,3);
      var value = range.getValues();
      var yoyaku = odrNum - 500;
      var same = value[yoyaku][2];
      var tttt = same - hournow - timelim;
      if(tttt>=0){
      mess2 = mess2 + value[yoyaku][0] + 'でご予約承りました。\nどうもありがとうございました。\n 3 を送信すると予約確認ができます。\n';
      sheet.getRange(yoyaku+1,2).setValue(nickname);
       var pushmsg = value[yoyaku][0] + nickname + '様の予約があります。';
        pushMessage(pushmsg);
	break;
      }

太字部分を追加します。これが配信される予約メッセージです。

メッセージ配信関数新規に記述します。名前はpushMessage()です。remessはメッセージ本文です。

function pushMessage(remess) {

//sheet指定済みの場合
// channelTokenはアクセストークンです。
   var range = sheet.getRange(2, 7);//アクティブsheetの"G2"
   var USER_ID = range.getValue();//ID取得
//  console.log(USER_ID); //デバック用IDログ出力
  var postData = {
    "to": USER_ID,
    "messages": [{
      "type": "text",
      "text": remess,
    }]
  };

  var url = "https://api.line.me/v2/bot/message/push";
  var headers = {
    "Content-Type": "application/json",
    'Authorization': 'Bearer ' + channelToken,
  };

  var options = {
    "method": "post",
    "headers": headers,
    "payload": JSON.stringify(postData)
  };
  var response = UrlFetchApp.fetch(url, options);
}

これで管理者が予約・キャンセルの通知を受け取ることができます。

Loading

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA