彰化一整天的論壇

 找回密碼
 立即註冊
查看: 2982|回復: 33

Google表單自動寄Email通知跟LineNotify【Google表單教學】

[複製鏈接]
發表於 2021-1-8 16:57:52 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2021-6-11 10:45 編輯

Google表單自動寄Email通知跟LineNotify
這支程式主要是在寄Email通知(訂購者)及LineNotify通知(網站),只要在試算表中使用陣列公式去計算出購買金額,程式碼的部分基本上不用改,只要設定好,會自動依試算表的欄位自動將內容通知使用者。


  1. function getFormData(e) {
  2.   /*
  3.   作者:彰化一整天blog
  4.   網站:http://bestdaylong.com
  5.   影音說明: https://odysee.com/@imingho:7/google-google-email-linenotify:1?r=ED8UgCZxf1JHrEUuHsyXniqDPDidHVcG
  6.   如何申請LineNotify權杖
  7. :https://odysee.com/@imingho:7/linenotify:d?r=ED8UgCZxf1JHrEUuHsyXniqDPDidHVcG
  8.   文章討論:http://discuz.bestdaylong.com/thread-39130-1-1.html

  9.   */
  10.   var token = "您的LineNotify"; //Line Notify

  11.   var send_name="彰化一整天blog";//寄信者名稱  
  12.   var subject="表單通知";  //寄信者標題
  13.   var sheet = SpreadsheetApp.getActiveSheet();
  14.   var lastColumn = sheet.getLastColumn();
  15.   var lastRow=sheet.getActiveCell().getLastRow();
  16.   var message = "";

  17.   for (var i = 1 ; i <= lastColumn; i++) {
  18.     //有填資料才顯示
  19.     if(sheet.getRange(lastRow,i).getValue()!="")
  20.     {
  21.         message += sheet.getRange(1,i).getValue() + ":" + sheet.getRange(lastRow,i).getValue() + "<br/>";
  22.     }
  23.   }

  24.   email=sheet.getRange("B"+lastRow).getValue();//使用者email

  25.   MailApp.sendEmail({
  26.     name:send_name,
  27.     to: email,
  28.     subject: subject,
  29.     htmlBody: message
  30.   });
  31.   
  32.   message=message.replace(/<br\s*[\/]?>/gi,"\n");//將所有的<br>換成\n
  33.   //傳送到LineNotify
  34.   var options =
  35.   {
  36.      "method"  : "post",
  37.      "payload" : {"message" : message},
  38.      "headers" : {"Authorization" : "Bearer " + token}
  39.   };

  40.   UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);

  41. }

複製代碼


回復

使用道具 舉報

發表於 2021-3-11 23:43:25 | 顯示全部樓層
不好意思,我想請教一下
我把程式貼上後去執行會跑出
" TypeError: Cannot read property 'getLastColumn' of null "
我看不懂為什麼會跑出這個錯誤@@
煩請版主指教
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-3-12 11:12:52 | 顯示全部樓層
j300521 發表於 2021-3-11 23:43
不好意思,我想請教一下
我把程式貼上後去執行會跑出
" TypeError: Cannot read property 'getLastColumn'  ...

這個程式碼是要貼在表單回應時的試算表。

若是空白試算表是會出現錯誤的。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-7-28 20:08:06 | 顯示全部樓層
本帖最後由 imingho 於 2021-9-10 23:52 編輯

若您要將notify跟其他計算金額的程式放在一起.
只要將message改成html
因為有網友不會改,所以我把改完的程式碼貼上來.
form_notify_01.jpg

  1.   /*
  2.   作者:彰化一整天blog
  3.   網站:http://bestdaylong.com
  4.   如何申請LineNotify權杖
  5. :https://odysee.com/@imingho:7/linenotify:d?r=ED8UgCZxf1JHrEUuHsyXniqDPDidHVcG
  6.         請將這段加在寄email之後

  7.   */
  8.   var token = "您的LineNotify"; //Line Notify

  9.   html=html.replace(/<br\s*[\/]?>/gi,"\n");//將所有的<br>換成\n
  10.   //傳送到LineNotify
  11.   var options =
  12.   {
  13.      "method"  : "post",
  14.      "payload" : {""message"" : html},
  15.      "headers" : {"Authorization" : "Bearer " + token}
  16.   };

  17.   UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
複製代碼

回復 支持 反對

使用道具 舉報

發表於 2021-8-12 11:15:49 | 顯示全部樓層
請問老師,
如果要
1)加LOGO圖片
2)改變文字顏色要如何寫呢?

煩請版主指教
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-8-12 11:42:19 | 顯示全部樓層
connie0203 發表於 2021-8-12 11:15
請問老師,
如果要
1)加LOGO圖片

請參考.
【Google表單教學】如何設定產品字型顏色及顯示Logo圖
http://discuz.bestdaylong.com/thread-38634-1-1.html
(出處: 彰化一整天的論壇)
回復 支持 反對

使用道具 舉報

發表於 2021-8-12 12:44:34 | 顯示全部樓層
本帖最後由 connie0203 於 2021-8-12 12:46 編輯
imingho 發表於 2021-8-12 11:42
請參考.
【Google表單教學】如何設定產品字型顏色及顯示Logo圖
http://discuz.bestdaylong.com/thread-38 ...

老師,再請教一下
我主要是在line notify 有問題
圖片在line面沒辦法直接顯示, 只有連結網址是嗎?
另外我要改的文字顏色在Line Notify 也無法作用
程式16行 31行


Line.jpg
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-8-12 13:24:37 | 顯示全部樓層
connie0203 發表於 2021-8-12 12:44
老師,再請教一下
我主要是在line notify 有問題
圖片在line面沒辦法直接顯示, 只有連結網址是嗎?

您圖片的部分可以參考.
https://youtu.be/d2PBPFVMMXE
用 Google 表單傳送圖片到 Line - (02)表單設計與撰寫程式碼
回復 支持 反對

使用道具 舉報

發表於 2021-9-1 01:12:01 | 顯示全部樓層
老師您好,請教一下..如附件一總金額怎麼自動計算,在客人下單後自動計算總金額後能在mail跟LineNotify顯示總金額 拜託了解答 謝謝
附件一.png
附件2.png
回復 支持 反對

使用道具 舉報

發表於 2021-9-4 06:10:46 | 顯示全部樓層
老師我想請問一下如何在受到特定內容時再傳送lineex. 收到回答是TRUE 則執行line
不知道要寫在哪裡 還請老師解答 謝謝

  1. function getFormData(e) {
  2.   /*
  3.   作者:彰化一整天blog
  4.   網站:http://bestdaylong.com
  5.   影音說明: https://odysee.com/@imingho:7/google-google-email-linenotify:1?r=ED8UgCZxf1JHrEUuHsyXniqDPDidHVcG
  6.   如何申請LineNotify權杖
  7. :https://odysee.com/@imingho:7/linenotify:d?r=ED8UgCZxf1JHrEUuHsyXniqDPDidHVcG
  8.   文章討論:http://discuz.bestdaylong.com/thread-39130-1-1.html

  9.   */
  10.   var token = "uuDduoXVDB3YGasEE67cTuiS6h8FvQDPLqPLHG5lOMz"; //Line Notify

  11.   var send_name="I Care for You";//寄信者名稱  
  12.   var subject="表單通知";  //寄信者標題
  13.   var sheet = SpreadsheetApp.getActiveSheet();
  14.   var lastColumn = sheet.getLastColumn();
  15.   var lastRow=sheet.getActiveCell().getLastRow();
  16.   var message = "";

  17.   for (var i = 1 ; i <= lastColumn; i++) {
  18.     //有填資料才顯示
  19.     if(sheet.getRange(lastRow,i).getValue()!="")
  20.     {
  21.         message += sheet.getRange(1,i).getValue() + ":" + sheet.getRange(lastRow,i).getValue() + "<br/>";
  22.     }
  23.   }

  24.   email=sheet.getRange("G"+lastRow).getValue();//使用者email

  25.   MailApp.sendEmail({
  26.     name:send_name,
  27.     to: email,
  28.     subject: subject,
  29.     htmlBody: message
  30.   });
  31.   
  32.    
  33.   message=message.replace(/<br\s*[\/]?>/gi,"\n");//將所有的<br>換成\n
  34.   
  35.   //傳送到LineNotify
  36.   var options =
  37.   {
  38.      "method"  : "post",
  39.      "payload" : {"message" : message},
  40.      "headers" : {"Authorization" : "Bearer " + token}
  41.   };

  42.   UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);

  43. }
複製代碼

回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)

GMT+8, 2021-9-20 10:04 , Processed in 0.106642 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表