見出し画像

【有料】LINE botで順番待ち整理券を作る方法



const SPREAD_SHEET_ID = "スプレッドシートのID";
const SHEET_NAME = "シート1"
const ACCESS_TOKEN = "LINE チャンネルアクセストークン";

const sheet = SpreadsheetApp.openById(SPREAD_SHEET_ID).getSheetByName(SHEET_NAME);
const bot = new LineBotSdk.client(ACCESS_TOKEN);
function doPost(e) { bot.call(e, callback) };
function callback(e) {
  if (e.message.type == "text") {
    if (e.message.text == "整理券発行") {
      setWaiting(e);
    } else if (e.message.text == "順番確認") {
      getWaitingCount(e);
    }
  }
};

function setWaiting(e) {
  const cells = sheet.createTextFinder(e.source.userId).findAll();
  if (cells.length == 0) {
    const waitingNum = sheet.getRange(sheet.getLastRow(), 2).getValue() + 1;
    sheet.appendRow([e.source.userId, waitingNum]);
    bot.replyMessage(e, [bot.textMessage(`整理券を発行しました!\n整理券番号は ${waitingNum} です。`)]);
  } else {
    bot.replyMessage(e, [bot.textMessage(`すでに発行済みです。\n整理券番号は ${cells[0].offset(0, 1).getValue()} です。`)]);
  }
}

function getWaitingCount(e) {
  const cells = sheet.createTextFinder(e.source.userId).findAll();
  if (cells.length == 0) {
    bot.replyMessage(e, [bot.textMessage(`整理券が発行されていません。`)]);
  } else {
    bot.replyMessage(e, [bot.textMessage(`お呼び出しまで、あと ${cells[0].getRow() - 1} 組です。`)]);
  }
}

ご購入いただけると、以下にコメント付きの応用プログラムが表示されます。
ご不明点はLINE公式アカウントでご質問ください。

ここから先は

3,005字

¥ 350

期間限定 PayPay支払いすると抽選でお得に!

いただいたサポートは、自己投資と災害復興支援に使わせていただきます。