我正在尝试做一个提交表单的项目,它将数据打印到Google电子表格,然后从那里将数据推送到Google日历应用程序,同时将数据划分给某些人。
这是我的本地HTML代码:
<form name="submit-to-google-sheet">
<input name="email" type="email" placeholder="Email address" id="email" required>
<input name="firstName" type="text" id="firstName" placeholder="First Name">
<input name="lastName" type="text" id="lastName" placeholder="Last Name">
<button type="submit" id="submit">Send</button>
</form>
<script>
function doGet(){
var SpreadsheetApp = SpreadsheetApp.openByURL('https://docs.google.com/spreadsheets/d/1PlwbKj34vqWWap9yXYio2m1oYHx_ciU3z_yTzerfZhw/edit?usp=sharing');
const scriptURL = 'https://script.google.com/a/kyme.fi/macros/s/AKfycbzTHsrpAT-oqDAp1rDPg1UsdHBqhKBEYs8nmYekGg/exec'
const form = document.forms['index.html']
var element = document.getElementById('submit');
element.addEventListener('submit', e => {
e.preventDefault()
fetch(scriptURL, { method: 'POST', body: new FormData(form)})
.then(response => console.log('Success!', response))
.catch(error => console.error('Error!', error.message))
})
}
</script>
以及我的Google Spreadsheet Javascript脚本:
function doGet() {
var sheetName = 'Sheet1'
var scriptProp = PropertiesService.getScriptProperties()
function intialSetup () {
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
var SpreadsheetApp = SpreadsheetApp.openById('1PlwbKj34vqWWap9yXYio2m1oYHx_ciU3z_yTzerfZhw');
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
if (e === undefined) {
e = 0;
}
var lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
var doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
var sheet = doc.getSheetByName(sheetName)
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
.setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
function setRowsData(sheet, objects, optHeadersRange, optFirstDataRowIndex) {
var headersRange = optHeadersRange || sheet.getRange(1, 1, 1, sheet.getMaxColumns());
var firstDataRowIndex = optFirstDataRowIndex || headersRange.getRowIndex() + 1;
var headers = normalizeHeaders(headersRange.getValues()[0]);
var email = document.getElementById('email').value.indexOf("@")[1];
var firstName = document.getElementById('firstName').value()[1];
var lastName = document.getElementById('lastName').value()[1];
var data = [];
for (var i = 0; i < objects.length; ++i) {
var values = []
for (j = 0; j < headers.length; ++j) {
var header = headers[j];
values.push(header.length > 0 && objects[i][header] ? objects[i][header] : "");
values = ('prop' in objects) ? objects.prop : defaultValue
}
data.push(values);
}
var destinationRange = sheet.getRange(firstDataRowIndex, headersRange.getColumnIndex(),
objects.length, headers.length);
destinationRange.setValues(data);
return values;
}
}
我找不到任何错误,但仍然无法打印到电子表格中。我已经设置了触发器,所以这不是问题,而且我的电子表格也向所有人开放,所以这也不是问题。