利用Line Notify通知Google表單事件. 因為想知道自己 ... - Medium
文章推薦指數: 80 %
因為想知道自己放在群組裡半公開的Google spreadsheet連結,如果填寫表單,要通知填了什麼內容,以及另一個表單被修改了什麼內容時,請通知我, ...
佛學日常程式閱讀影片利用LineNotify通知Google表單事件DoranWuFollowFeb11,2020·7minread授權頁面因為想知道自己放在群組裡半公開的Googlespreadsheet連結,如果填寫表單,要通知填了什麼內容,以及另一個表單被修改了什麼內容時,請通知我,找到Line有這樣的功能,成功做出來,紀錄一下過程。
要進行兩個組要部分:一、在LineServiceWebSite上取得一個LineNotify權杖(Token),Token與line中的聯絡人(包括群組)要在LineNotifypage裡建立一對一關係,所以可以不斷新增權杖代碼,這段代碼「只會出現一次」,建議找個記事本記錄下,透過Line自動發佈訊息給甲,就需建專發佈訊息給甲的LineNotifyToken。
二、寫程式透過此Token去呼叫LineNotifyPostAPI,把訊息代入API中。
可以來自不同的事件,但都綁在同一個服務中,本次會使用到GoogleAppsScript來傳送通知。
產生LineNotifyToken至LINENotify的網站,使用自己的LINE帳號登入,登入移至個人帳號Logo,選擇「個人頁面」,會看到已有和LINENotify自訂的服務,可見本圖片要產生新的,選擇「Generatetoken」,會跳出以下畫面,請命名服務和選擇要個人還是群組當目標,最後產生一組代碼就可以在已連動的服務中看到新增權杖,記得要先加LINENotify好友,然後邀請LINENotify到你選擇的個人或群組編寫GoogleAppsScript傳送通知本次分別寫在兩個地方,一個是Google表單送出時,一個是當Googlespreadsheet有變動時,會傳送訊息。
Google表單送出時參考這個教學使用GoogleAppsScript取得Google表單的題目與回答內容並傳送至Line—(01)程式碼撰寫於Google表單從表單右上角點擊三個圈的「更多設定」,找到「指令編輯碼器」,進去之後就會到屬於這個表單的GoogleAppsScript,請記得命名。
從參考處取得程式碼,只有編輯message多了個圖示如下:functiongetFormData(e){vartoken="LineNotify權杖";varform=FormApp.getActiveForm();varcurrentItemResponses=e.response.getItemResponses();varmessage="\n";for(vari=0;i<currentItemResponses.length;i++){message+=currentItemResponses[i].getItem().getTitle()+":"+currentItemResponses[i].getResponse()+"\n\n";}message+="⏰填表時間:"+e.response.getTimestamp();sendLineNotify(message,token);}functionsendLineNotify(message,token){varoptions={"method":"post","payload":{"message":message},"headers":{"Authorization":"Bearer"+token}};UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);}寫完之後按一下工作列「時鐘」的圖示執行後,會跳出到另一個畫面,要先獲得權限,接著就是編輯觸發時間點。
然後測試一下寫一個新的表單後,成功在Line的對話裡出現,成功!Googlespreadsheet編輯時另一個需求是想知道編輯的內容和行列,發現需要自建立一個Googleappsscript,要先於Googledrive安裝,教學請參考這篇,然後寫的程式如下:functiononEdit(e){vartoken="LINENotifyToken";Logger.log("somethingwasedited,previousvaluewas:"+e.oldValue);varnewValue=e.range.getValues();Logger.log("newValue%s",newValue);varrange=e.range;varli=range.getRow();varcl=range.getColumn();Logger.log("Thecelleditedwasatrow"+range.getRow()+"andcolumn"+range.getColumn());sendLineNotify("匝匝地圖修改囉!新內容為:➡️"+newValue+",在"+(li+1)+"行及"+cl+"列。
",token);}functionsendLineNotify(message,token){varoptions={"method":"post","payload":{"message":message},"headers":{"Authorization":"Bearer"+token}};UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);}參考Google官網的Simple作法,在標單編輯時會觸發這個函示onEdit(e)SimpleTriggersLogger會紀錄最近一筆的異動,新增的會蓋掉之前的,可以在GoogleAppsScript介面看到,記錄變動範圍內的新值到newValue,然後把變動的行、列紀錄,參考這篇找到行列的取法,注意,因為行在我的表格中,第一行是標題列,所以在要送的msg中要多加1,如此,最後傳送的內容顯示如下:以上,集兩種需求於一個LineNotify的服務完成,了解到Googlespreadsheet的用法,簡單的GoogleAppsScript撰寫,還有LineNotifyToken的綁定,成就解鎖!另外參考的連結如下:Howdoyouget"e.oldValue"ifcellcontentswerepastedfromanothercellinSheetPleasethinkofthisasoneofseveralworkarounds.Ithoughtthatitmightbecomeaworkaroundbysavingthedata…stackoverflow.com此生故彼生紀錄生活中的因緣,再回頭的那刻我不忘記132ProgrammingLineNotifyGoogleSpreadsheets13 claps132此生故彼生紀錄生活中的因緣,再回頭的那刻我不忘記WrittenbyDoranWuFollow此生故彼生紀錄生活中的因緣,再回頭的那刻我不忘記
延伸文章資訊
- 1GAS26:以Line Notify 傳送Google表單資料 - 大榔頭的電腦隨筆
本篇設計一個簡單的報名表單,使用者填寫表單後不但會將資料記錄於Google 試算表中,同時會以Line Notify 通知特定管理者。
- 2Google表單除了問卷調查,還可以製作Line群組報名表 - 贊贊小屋
Google有很多免費的線上應用服務,文書應用方面除了早期與微軟Office相似的文件試算表,現在也有頗具特色的Google表單,本文介紹用它建立加入Line群組 ...
- 3吉哥的分享- 如何用LineBot取代Google表單
1、在雲端硬碟建立一個google表單如下: · 2、將表單建立與試算表的連結 · 3、將表單建立與試算表的連結 · 4、取得表單的連結網址,以便給他人輸入內容 · 5、透過表單輸入的 ...
- 4Google表單+ Line通知(10802-讓雲端工具提昇工作效率)
Line Notify · 只要與其他網路服務完成連動設定,您即可透過「LINE Notify」官方帳號接收該網路服務的通知訊息。 · 請先登入「Line Notify」 · 至「個人頁面 ...
- 5捨棄google 表單外掛!SurveyCake 提供最完整的線上表單管理
建立google 表單時,你是否為了達到以下目的,而搜尋google 外掛程式: ... 下載各檔案類型的表單回覆,進行更深入的數據分析和後續運用。