---
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
```