Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda