--- title: 活動組文檔-自動填表單腳本 tags: - 活動組 - 文書組 - 文檔 --- # 自動填表單腳本 >[!Caution] >近期在測試時發現好像失效了,詳細情況有待查明 `f12` 搜尋 `entry.` 單選表單會有 `entry.xxxxxx_sentinel` 心得欄位的是一般的 `entry.xxxxxx` ```js // 使用 JavaScript 自動提交 Google 表單 /** * 自動提交 Google 表單 * @param {string} formUrl - 表單的提交 URL * @param {Object} formData - 表單的資料對應 (key: entry ID, value: 欲填寫的內容) */ async function autoSubmitForm(formUrl, formData) { const urlParams = new URLSearchParams(); // 填充表單資料 Object.entries(formData).forEach(([key, value]) => { urlParams.append(key, value); }); try { const response = await fetch(formUrl, { method: "POST", body: urlParams, headers: { "Content-Type": "application/x-www-form-urlencoded", }, }); console.log(`[+] Status: ${response.status} ${response.statusText}`); if (response.ok) { console.log("[+] 表單已成功提交!"); } else { console.error("[*] 提交失敗,請檢查表單的 URL 和資料格式。"); } } catch (error) { console.error("發生錯誤:", error); } } // 表單 URL 後綴 viewform 改為 formResponse 即可 const FORM_URL = "https://docs.google.com/forms/d/e/1FAIpQLScpDNTLWYbfpaP9YBcnuCaW9udBYgU6-sHP03ESMAVKO55pRA/formResponse"; // 表單資料對應 const FORM_ENTRIES = { "entry.238441774": "非常滿意", // 0.活動整體滿意度 "entry.717612801": "提升很多", // 1.能從與他人互動中,汲取正面有用的經驗。 "entry.1262398917": "提升很多", // 2.能檢討自己能力不足之處,並願意主動學習。 "entry.238305455": "提升很多", // 3.能接受、學習新事物,以累積創新能量。 "entry.1844493298": "提升很多", // 4.能產生新穎且創新的想法。 "entry.313682288": "提升很多", // 5.能培養發現問題的靈敏度。 "entry.905052635": "提升很多", // 6.能尊重社會的多元群體。 "entry.337310354": "提升很多", // 7.能在日常生活中發掘需要幫助與關懷的人。 "entry.1338249967": "提升很多", // 8.能接納團隊成員意見。 "entry.816701087": "提升很多", // 9.能支持團隊的決定,並全力以赴。 "entry.2037332326": "提升很多", // 10.當問題超出能力解決範圍時,能分析並積極尋求協助。 "entry.1191116224": "來自機器人的好棒", // 11.請你用20個字說明參與此活動的心得。 }; // 總提交次數 const SUBMISSION_COUNT = 3; (async () => { for (let i = 1; i <= SUBMISSION_COUNT; i++) { console.log(`[${i}/${SUBMISSION_COUNT}] 正在提交表單...`); await autoSubmitForm(FORM_URL, FORM_ENTRIES); } })(); ``` 執行 ```bash node script.js ```