ETH官方钱包

前往
大廳
主題

Google自動(dòng)化:表單收到回應(yīng)Discord通知

蜂蜜雪利酒 | 2024-10-10 13:52:24 | 巴幣 16 | 人氣 35

先前發(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)
  }

效果如下,耶~

說明就到這裡,希望對大家有幫助。
辛苦了,謝謝大家

創(chuàng)作回應(yīng)

『。』
骯,好厲害!看不懂的我只能投出崇拜的眼神https://im.bahamut.com.tw/sticker/477/15.png
2024-10-11 11:54:43

相關(guān)創(chuàng)作

更多創(chuàng)作