星期六, 8月 09, 2014

Google表單發確認信

Google表單挺方便的,又是免費使用,資料又自動整理到Google Drive的試算表
而內含的編輯器也可加trigger發送確認信


  1. 新增表單
    點選「新增/Google表單」
  2. 查看回應
    表單的設計就不多說了,直接看回應
    點選「查看回應」
  3. 編輯指令
    點選「工具/指令碼編輯器」
  4. 新增Script檔案
    點選「檔案/新增/指令碼檔案」
  5. 編輯Script
    以下程式碼即為上圖的程式,參考以下改來的
    reference: Send Google Forms by Email
    /* Send Confirmation Email with Google Forms */
    function SendGoogleForm(e) {  
      var message = '';
      for (var filed in  e.namedValues) {
            message += filed + ": " +  e.namedValues[filed] + '< br />';        
        }
         var recipient = e.namedValues['電子信箱']; //e即為回覆的試算表,而namedValues即取得該欄位名的內容
        var cc = 'yup.japan@gmail.com';          //cc一份給自己
        var subject = "Yup!代購單確認單";
        var sendername = 'Yup!代購';
        var textbody = message.replace('< br />', '\n');
        GmailApp.sendEmail(recipient, subject, textbody, 
                                {cc: cc, name: sendername, htmlBody: message});
    }
    
    function Initialize() {
      var triggers = ScriptApp.getProjectTriggers();
     
      for(var i in triggers) {
        ScriptApp.deleteTrigger(triggers[i]);
      }
      
      ScriptApp.newTrigger("SendGoogleForm")
      .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
      .onFormSubmit()
      .create();
    }
  6. 啟動程序
    寫好Script,現在還得設定觸發
    點選「資源/現在專案的啟動程序」
    p.s. 如果仍收不到信的話 要先跑一次initialize(),手動執行or設觸發都可
  7. 新增觸發程序
    由於尚未建立任何觸發程序,因此會跳出這個視窗
    點選「尚未建立觸發程序,按一下....」
  8. 設定觸發程序
    設定user提交表單時,才會觸發程序

這樣就完成了,user提交表單後,就會發信通知

p.s. 在google form及google試算表都可以寫script,但在form觸發會抓不到內容
p.p.s. 好像得先按「執行」run過一次程式裡的Initialize()

沒有留言: