先前發(fā)過一篇「Google自動(dòng)化:表單收到回覆LINE通知」的文,
蛋魷魚LINE Notify明年2025/3/31將終止服務(wù)(From LINE Notify結(jié)束服務(wù)公告)
路不轉(zhuǎn)人轉(zhuǎn),改用Discord webhook,讓Discord通知?(*ˊ?ˋ*)?
此篇文章可大致了解到以下內(nèi)容:
1.如何啟用Discord webhook
2.如何透過GAS
(1)實(shí)現(xiàn)提交表單時(shí),Discord自動(dòng)通知。
(2)取得試算表指定欄位。
(3)取得表單回應(yīng)的資料。
那麼,開始做~?(ˊ?ˋ*)?
操作步驟:
Step 1.啟用Discord Webhook
選擇一個(gè)想放通知的文字頻道→點(diǎn)選齒輪按鈕。
左邊選單→「整合」→右邊介面→「Webhook」
點(diǎn)選按鈕「新 Webhook」→點(diǎn)選新創(chuàng)立出來的Webhook
會(huì)跳出介面,可以修改成想顯示的名稱和圖示。
?小提醒:這邊的「Webhook網(wǎng)址」等一下要複製到程式碼裡面。
Webhook網(wǎng)址請小心不要外洩出去,避免被無聊人士拿去炸您的群??
Step 2.把程式碼貼進(jìn)Apps Script
打開表單回應(yīng)的試算表,上方選單→擴(kuò)充功能→Apps Script
會(huì)看到以下畫面,請?jiān)诩t框處貼入程式碼。
程式碼如下,請修改其中兩行:
1.第3行:黃底處填入您的Webhook網(wǎng)址
const discordUrl = "這裡填入您的Webhook網(wǎng)址";
2.第9行:黃底處填入您要顯示的Discord訊息,\n是換行的標(biāo)記,<@使用者ID>可在Discord指定通知人。
let msg = '<@使用者ID> 吃通知?(*ˊ?ˋ*)?\n https://www.gamer.com.tw/ \n';
//功能介紹:Google表單收到回應(yīng)後,傳送到Discord通知。 const discordUrl = "這裡填入您的Webhook網(wǎng)址"; //這裡填入您的Webhook網(wǎng)址 //trigger:Google表單提送觸發(fā)通知 function onFormSubmit(e) { //這裡填入您要顯示的Discord訊息,\n是換行的標(biāo)記,<@使用者ID>可在Discord指定通知人。 let msg = '<@使用者ID> 吃通知?(*ˊ?ˋ*)?\n https://www.gamer.com.tw/ \n'; //發(fā)送Discord訊息 sendMessage(discordUrl, msg); } //發(fā)送Discord訊息 function sendMessage(discordUrl, message) { let payload = JSON.stringify({content: message}); let options = { method: "POST", payload: payload, muteHttpExceptions: true, contentType: "application/json" }; UrlFetchApp.fetch(discordUrl, options); console.log(`發(fā)送Discord通知~`); } |
點(diǎn)選「磁碟片」按鈕儲(chǔ)存。
Step 3.新增觸發(fā)條件
左手邊選單→點(diǎn)選「觸發(fā)條件」→新增觸發(fā)條件
確認(rèn)以下兩個(gè)地方後,點(diǎn)選「儲(chǔ)存」:
1.執(zhí)行的功能為「onFormSubmit」
2.選取活動(dòng)類型修改為「提交表單時(shí)」
Step 4.開放權(quán)限
這裡會(huì)要求您提供權(quán)限,點(diǎn)您的Google帳戶
點(diǎn)選「Allow」
到表單裡,填一筆申請資料,然後送出!
大功告成~灑花?*??(ˊ?ˋ*)??*?
進(jìn)階功能:
通知中顯示申請人填寫的資料。
請將以下程式碼貼在第10行:
//選用功能:可將申請人填寫的資料,顯示在訊息上。**請不要顯示包含個(gè)資的欄位,如:申請人真實(shí)姓名、信箱等。** //程式碼請貼在第10行。 let ss = SpreadsheetApp.getActiveSpreadsheet(); let ws = ss.getActiveSheet(); try { for(let i = 1 ; i<= ws.getLastColumn(); i++) { //取得表單題目 //補(bǔ)充說明:getRange(橫的列,直的欄),從1開始計(jì)算 let item = ws.getRange(1,i).getValue(); //取得表單回應(yīng) let response = e.values[i-1]; //將回應(yīng)填入訊息中 msg += item + " : " + response + "\n"; } } catch (err) { msg = "No Answers for message.\n\n"; //異常時(shí)進(jìn)行紀(jì)錄 Logger.log(err) } |
效果如下,耶~
說明就到這裡,希望對大家有幫助。
辛苦了,謝謝大家