iT邦幫忙

0

詢問當 GOOGLE試算表被寫入資料時,自動觸發條件,傳訊息給Line Notify發送

詢問當 GOOGLE試算表被寫入資料時,自動觸發條件,傳訊息給Line Notify發送(學習修改遇困難)

教學範例:https://www.youtube.com/watch?v=OKekPbTdUxU
.......................................................
原始程式邏輯:
表單發送(資料連結試算表)-->觸發google試算表條件-->試算表新內容傳到Line Notify發送
解發條件:myFunction、試算表、提交表單時。

想修改成:
當line bot傳送訊息寫入google試算表時-->觸發google試算表條件-->試算表新內容傳到Line Notify發送

解發條件:myFunction、試算表、1.提交表單時2.文件內容變動時3.文件開起時4.編緝文件時(1~4都試過,沒有反應死魚一條...)。

目前用line bot傳送訊息寫入google試算表,都無法使「觸發條件」有反應。換一個有表單連結的試算表,用表單發送就可以。是什麼問題??????
還是程式要修改,如果是還請高手教我囉!!

//程式碼開始

function myFunction(e) {
  var token = "Line Notify 的權杖";
  var message = e.values[0] + "[查詢ID]\n";
      message += e.values[1] + "[詢問內容]\n";
  sendLineNotify(message, token);
}

function sendLineNotify(message, token){
  var options =
   {
     "method"  : "post",
     "payload" : {"message" : message},
     "headers" : {"Authorization" : "Bearer " + token}
   };
   UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

//程式碼結束
看更多先前的討論...收起先前的討論...
Han iT邦研究生 1 級 ‧ 2021-09-04 18:25:13 檢舉
所以你發送到line notify有測試過是正常發送的?
只是無法在你想要的時候進行觸發?
這樣理解沒錯吧?
累累 iT邦新手 5 級 ‧ 2021-09-05 02:59:46 檢舉
1.原來的程式,是由表單發送到試算表完成觸發條件的。我換了一張試算表是由line bot寫入資料的。程式和Line Notify 的權杖都是一樣的,所以說有試過。(程式寫入由該試算表/工具/程式碼編緝器.進入)
2.觸發條件是在google app script的小時鐘設定,新的試算表是完全沒有觸發成功過。我試過所有選項,真的很奇怪沒有反應。
3.我說明的可能不太清楚,你可以看教學範例就知細節囉,
Han iT邦研究生 1 級 ‧ 2021-09-05 17:16:42 檢舉
我測試了一下,如果內容是透過google app script寫入的話,這個是不會觸發修改的事件
Han iT邦研究生 1 級 ‧ 2021-09-05 17:17:11 檢舉
但如果我自己更改試算表的內容,有成功觸發並且發送line notify,你可能要透過別的方法來去觸發
累累 iT邦新手 5 級 ‧ 2021-09-06 11:01:09 檢舉
謝囉!!終於發現問題點了......那找解決方案就會快很多^_^
累累 iT邦新手 5 級 ‧ 2021-09-06 11:41:16 檢舉
我開新的試算表用函數Importrange 把「透過google app script寫入」的試算表資料下載下來。新資料沒有傳給line notify,但是有觸發失敗的資料說明:
Cloud 記錄檔
2021年9月6日 上午11:25:46 錯誤 TypeError: Cannot read property '0' of undefined
at myFunction(程式碼:5:25)
上面的意思是程式碼有問題嗎?有改的空間嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
Han
iT邦研究生 1 級 ‧ 2021-09-06 14:16:38
最佳解答

Cloud 記錄檔
2021年9月6日 上午11:25:46 錯誤 TypeError: Cannot read property '0' of undefined
at myFunction(程式碼:5:25

既然有解決到你的問題,就特地開一個回答區塊吧XD
看了一下程式碼,那邊沒有讀到e.value[0]的原因很多
你可以視作e是試算表發送給你的事件

以這次為例的話,這個事件是『當有資料新增的時候』會觸發
所以事件內容就有可能包含,『新增了什麼資料』
所以原本的e.value[0]可以跑是因為有新增資料

而這次噴了這個錯誤,可以推測幾個原因

  • 你用了不同事件,而裡面不包含e.value這東西
  • 你用了相同事件,但試算表不知道你新增了什麼所以也不知道e.value是什麼

建議把e 使用 console.log 顯示出來看看裡面有包含什麼資料
好方便進行除錯

累累 iT邦新手 5 級 ‧ 2021-09-07 04:21:49 檢舉

你的說明,對我滿有幫助的!讚讚!

0
tcvwqxh8
iT邦新手 5 級 ‧ 2022-03-02 23:36:17

想問一下版大 問題解決了嗎
更改成功後的程式是如何呢 (因我也遇到相同問題)
求分享 感謝大哥
tcvwqxh8@gmail.com

想問一下, 問題解決了嗎
更改成功後的程式是如何呢? 因為我也遇到相同問題
求分享 感謝大哥
aryanfu1105@gmail.com

我要發表回答

立即登入回答