2014/05/30

Google Form 新增線上表單和寄信通知

Google表單可以做線上問卷等應用,最近剛好有用到就記錄下來


先登入自己的Google帳號,並前往Google雲端硬碟內新增表單


會提示輸入標題及主題



按下確定就建立成功



可以自行新增選單的元件

完成後,點擊『查看即時表單』就會取得剛剛製作的表單網址以及畫面




下方是我剛剛編輯好的畫面,畫面沒問題後,來加入寄信通知的App Script吧!





點擊『工具/指令碼管理員』


選擇新增


接著在跳出視窗選擇空白專案


並將以下程式碼貼入到該專案內儲存

function getFormResponse() {
  
  //取得表單
  var myForm = FormApp.openById('Your Form ID');
  
  //取得回傳資料
  var responses = myForm.getResponses();
  
  //設定回傳長度
  var r_length = responses.length;
  
  //走訪回傳資料
  for(var i=0; i<r_length; i++){
    
    //取得表單物件
    var item = responses[i].getItemResponses();
   
    
    //設定物件總共長度
    var i_length = item.length;
    
    //Context
    var myContext;
    
    //走訪表單物件
    for(var j=0; j<i_length; j++){
      myContext += item[j].getItem().getTitle();
      myContext += ":" + item[j].getResponse() + "\n"; 
    }

    
    //取得日期
    myContext += "\nDate:" + responses[i].getTimestamp() + "\n\n\n";
    
    //寄信給某個人
    MailApp.sendEmail('Your mail', "Title", myContext);
    
  }
  //刪除回應問題
  myForm.deleteAllResponses();
}



儲存完後,點選『資源/現有專案的啟動程序』

按下『尚未建立觸發程序,按一下這裡來新增觸發程序。』


選擇表單/提交表單時,這件事情我希望再使用者提交時觸發


儲存之後,會跳出要允許權限都按允許即可
再度測試製作好的線上表單,測試前信箱前三封信是如下圖



測試畫面


提交畫面


過幾秒後,再回到信箱會看到通知信



這樣就大功告成了,記得將表單編輯權限設定為私人XD

參考資料:
https://developers.google.com/apps-script/reference/forms
https://developers.google.com/apps-script/reference/forms/form
https://developers.google.com/apps-script/reference/forms/form-response
https://developers.google.com/apps-script/reference/forms/item-response