Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
Cómo enviar una respuesta a una pregunta de respuesta múltiple en un formulario de Google usando Javascript

Trabajo para una escuela chárter y cuando recibo nuevos estudiantes tengo que completar un formulario de solicitud de equipo para el estudiante a través de Google Forms. Me gustaría poder enviar automáticamente una respuesta sin tener que completar el formulario cada vez. Ya tengo toda la información sobre el estudiante que necesitaría en una Hoja de Google.
No tengo acceso de edición al formulario y solo puedo usar el script de la aplicación de Google para codificar porque no tengo acceso al servidor ni acceso de administrador en mi computadora portátil de trabajo. Así que esta es realmente mi única opción para la automatización.
Hasta ahora, he podido realizar una llamada de búsqueda con la URL del formulario y un objeto utilizando los ID de entrada para las preguntas.

 const obj = { "entry.1111": tName, "entry.2222": sFirst, "entry.3333": sLast, "entry.4444": 'Option 1', //multiple answer question "entry.5555": 'yes', "entry.6666": 'yes', "entry.7777": 'minor', "entry.8888": 'initial' } const options = { 'method': 'post', 'payload': obj } UrlFetchApp.fetch(url,options)

Esto funciona siempre que no necesite incluir más de una respuesta por pregunta, pero para algunos estudiantes necesito hacer precisamente eso. Si trato de enviar una cadena como "Opción 1, Opción 2", el script falla.

Editar: Mi código no tiene el comentario en el objeto.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Cuando se envían las respuestas múltiples para una pregunta, desafortunadamente, pensé que el objeto JSON podría no poder usarse directamente para la carga útil. Porque en este caso se utiliza la misma clave. E incluso cuando se utiliza la matriz para el valor, se produce un error. Esto ya se ha mencionado en su comentario.

Entonces, en esta respuesta, me gustaría proponer agregarlo al parámetro de consulta. En este caso, creo que hay 2 patrones para tu situación.

Patrón 1:

En este patrón, todos los valores se utilizan como parámetros de consulta.

 // This script is from https://gist.github.com/tanaikech/70503e0ea6998083fcb05c6d2a857107 String.prototype.addQuery = function(obj) { return this + Object.keys(obj).reduce(function(p, e, i) { return p + (i == 0 ? "?" : "&") + (Array.isArray(obj[e]) ? obj[e].reduce(function(str, f, j) { return str + e + "=" + encodeURIComponent(f) + (j != obj[e].length - 1 ? "&" : "") },"") : e + "=" + encodeURIComponent(obj[e])); },""); } function myFunction() { const url = "### your URL ###"; // Please set your URL. const query = { "entry.1111": tName, "entry.2222": sFirst, "entry.3333": sLast, "entry.4444": ['Option 1', 'Option 2'], "entry.5555": 'yes', "entry.6666": 'yes', "entry.7777": 'minor', "entry.8888": 'initial' }; const endpoint = url.addQuery(query); const options = {'method': 'post'}; const res = UrlFetchApp.fetch(endpoint, options); console.log(res.getContentText()); }

Patrón 2:

En este patrón, solo la pregunta de las múltiples respuestas se envía como parámetros de consulta.

 // This script is from https://gist.github.com/tanaikech/70503e0ea6998083fcb05c6d2a857107 String.prototype.addQuery = function(obj) { return this + Object.keys(obj).reduce(function(p, e, i) { return p + (i == 0 ? "?" : "&") + (Array.isArray(obj[e]) ? obj[e].reduce(function(str, f, j) { return str + e + "=" + encodeURIComponent(f) + (j != obj[e].length - 1 ? "&" : "") },"") : e + "=" + encodeURIComponent(obj[e])); },""); } function myFunction() { const url = "### your URL ###"; // Please set your URL. const query = { "entry.4444": ['Option 1', 'Option 2'], }; const obj = { "entry.1111": tName, "entry.2222": sFirst, "entry.3333": sLast, "entry.5555": 'yes', "entry.6666": 'yes', "entry.7777": 'minor', "entry.8888": 'initial' }; const endpoint = url.addQuery(query); const options = { 'method': 'post', 'payload': obj }; const res = UrlFetchApp.fetch(endpoint, options); console.log(res.getContentText()) }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!