Вот HTML-файл:
Код: Выделить всё
Name:
Role:
--Select--
Associate
Partner
Volunteer
Neighborhood:
--Select--
Manhattan
Brooklyn
Queens
Bronx
Staten Island
Photo 1. Profile picture
Photo 2. First hobby picture
Photo 2. Second hobby picture
Submit
Оригинальный Code.gs работает нормально:
Код: Выделить всё
const sheetName = 'Sheet1'
const scriptProp = PropertiesService.getScriptProperties()
function initialSetup () {
const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
const lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
const sheet = doc.getSheetByName(sheetName)
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
const nextRow = sheet.getLastRow() + 1
const newRow = headers.map(function(header) {
return header === 'Date' ? new Date() : e.parameter[header]
})
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()
}
}
Вот обновленный файл Code.gs, который не работает:
Код: Выделить всё
const sheetName = 'Sheet1'
const scriptProp = PropertiesService.getScriptProperties()
function initialSetup () {
const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
const lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
const sheet = doc.getSheetByName(sheetName)
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
const nextRow = sheet.getLastRow() + 1
const newRow = headers.map(function(header) {
if(header === 'Photo1'){
var contentType = 'image/jpeg';
var image = e.parameter[header];
var image = image.getAs(contentType);
var file = DriveApp.createFile(image);
file.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.VIEW);
sheet.getRange(NextRow, 4, 1, 1).setFormula("=IMAGE(\"https://drive.google.com/uc?export=view&id=" + file.getId() + "\")");
} else if(header === 'Photo2') {
var contentType = 'image/jpeg';
var image = e.parameter[header];
var image = image.getAs(contentType);
var file = DriveApp.createFile(image);
file.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.VIEW);
sheet.getRange(NextRow, 5, 1, 1).setFormula("=IMAGE(\"https://drive.google.com/uc?export=view&id=" + file.getId() + "\")");
} else if(header === 'Photo3') {
var contentType = 'image/jpeg';
var image = e.parameter[header];
var image = image.getAs(contentType);
var file = DriveApp.createFile(image);
file.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.VIEW);
sheet.getRange(NextRow, 6, 1, 1).setFormula("=IMAGE(\"https://drive.google.com/uc?export=view&id=" + file.getId() + "\")");
} else {
return header === 'Date' ? new Date() : e.parameter[header]
}
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'message' : 'Thank you for your submission!'}))
.setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'message' : 'There was an error in your submission. Please contact xxx@gmail.com.', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... google-she
Мобильная версия