驗證後轉向

尚未以Session處理

Code.gs

function doGet() {

  return HtmlService.createHtmlOutputFromFile('index');

}


function checkCredentials(userId, password) {

  var spreadsheetId = '更改為自己的試算表ID';

  var sheetName = 'Sheet1';

  var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);

  var data = sheet.getDataRange().getValues();


  for (var i = 1; i < data.length; i++) {

    var row = data[i];

    if (row[0] === userId && row[1] === password) {

      return row[2] + ' 已登入';

    }

  }


  return '未登入';

}


function includePage(){

  //Session.getActiveUser()

  var pageContent = HtmlService.createTemplateFromFile('work.html').getRawContent();

  return pageContent;

}

index.html

<!DOCTYPE html>

<html>

  <head>

    <base target="_top">

  </head>

  <body>

    <form id="loginForm">

      <label for="userId">帳號:</label>

      <input type="text" id="userId" name="userId" required><br><br>

      <label for="password">密碼:</label>

      <input type="password" id="password" name="password" required><br><br>

      <input type="submit" value="登入">

    </form>


    <div id="result"></div>


    <script>

      document.getElementById("loginForm").addEventListener("submit", function(e) {

        e.preventDefault();

        var username = document.getElementById("userId").value;

        var password = document.getElementById("password").value;

        var resultDiv = document.getElementById("result");


        google.script.run.withSuccessHandler(function(result) {

          //resultDiv.innerHTML = result;

          document.getElementById("result").innerHTML = result;

          if (result !== "未登入"){

            localStorage.setItem('sendname',JSON.stringify(result)); //儲存寄件者名稱

            google.script.run.withSuccessHandler(updataPageContent).includePage();

          }

        }).checkCredentials(username, password);

       

      });


      function updataPageContent(content){

        document.open();

        document.write(content);

        document.close();

      }

    </script>

  </body>

</html>

work.html

<!DOCTYPE html>

<html>

  <head>

    <base target="_top">

  </head>

  <body>

    <h1>Welcome to Work Page</h1>

    <p>This is the work page content.</p>

    <p id="Sendername">...</p>

        <script>

          var username = localStorage.getItem("username");

          document.getElementById("Sendername").innerHTML = JSON.parse(username); //提取寄件者名稱

        </script>

    <script>

      window.load(){

        google.script.run.withSuccessHandler(function(userId) {

        if (!userId) {

          document.open();

          document.write("index.html");

          document.close();

        }

      }).checkSession();

      }

    </script>


  </body>

</html>


Google Apps Script在HTML之間傳遞資料:

使用物件 localStorage

方法 setItem()、getItem()

來源網頁(傳送) localStorage.setItem('名稱',JSON.stringify('資料內容'));

目的網頁(接收): 

var username = localStorage.getItem("名稱");

document.getElementById("Sendername").innerHTML = JSON.parse(username);


GAS的HTML傳參數給code.gs

1.將接收的值存入HTML

<label id="senderName"></label>

<script>

  document.getElementById('senderName').innerHTML = JSON.parse(localStorage.getItem('Sender'));

</script>

2.取值並且呼叫GAS,傳入參數。

var senderName = document.getElementById('senderInput').textContent;

google.script.run.sendEmailToRecipient('???@kssh.khc.edu.tw',subject, content, senderName);