O objeto de evento de onSubmit está vazio no script do Google
Tenho um formulário do Google vinculado a uma planilha do Google. Nessa planilha, tenho um código que contém este
function onSubmit(e){
Logger.log(e)
Logger.log("Call onSubmit")
}
O gatilho é configurado como segue
Project: Spreadsheet's scritp
Deployment:Head
Event:From spreadsheet - On form submit
Function:onSubmit
Então, sempre que eu envio o formulário, o log mostra
[object Object]
Call onSubmit
O formulário tem muitas perguntas, não um formulário vazio. Ao ler a documentação, parece que o objeto de evento contém muitas informações. Há algo errado com minha configuração? Recorri à leitura das respostas nas folhas de dados, mas isso não é o ideal. Muitas coisas precisam ser chamadas e / ou definidas manualmente.
Respostas
O logger tem bugs e não é recomendado confiar diretamente no que você vê no depurador.
Melhores Práticas:
Sempre use
consoleclasse em vez deLoggerSempre
JSON.stringify()tudo o que você vai registrar:console.log(JSON.stringify(e));
O último deve resolver seu problema. [object Object]é o resultado de chamar toString()um objeto, pois o logger é incapaz de exibir um objeto diretamente.
const obj = {a:1};
console.log(obj.toString());//[object Object]
console.log(JSON.stringify(obj));//'{"a":1}'
Ao contrário da maioria dos depuradores de navegador, o logger de scripts do Google Apps armazenará apenas valores de string básicos. Na maioria dos casos, isso significa que a documentação será mais útil para a compreensão de valores complexos. No seu caso, o objeto de evento para enviar eventos é bastante simples, com uma valueschave para um array simples e uma namedValueschave para uma pesquisa de objeto do que foi enviado.