Use los scripts de la aplicación para abrir el formulario y hacer una selección

Para poner esto brevemente, estoy probando un formulario de unidad de Google que registrará los votos para una elección escolar para garantizar que sea seguro.

¿Hay alguna manera de abrir un formulario desde la URL compartida y los datos de lista / entrada? En resumen, ¿puedo escribir un script para actuar como un bot que votará e intentará colgar el formulario?

URL de muestra: http://docs.google.com/forms/d/RANDOM_STRING/viewform

Editar: En algún momento a fines de 2014, un cambio en el servicio de Formularios de Google invalidó este truco. Mira ¿Es posible “rellenar” un formulario de Google usando datos de una hoja de cálculo de Google? y ¿Cómo rellenar las casillas de verificación del formulario de Google? para una solución que se basa en los métodos de formulario.


Un formulario de Google, cuando se muestra como un “formulario en vivo”, es simplemente un formulario HTML, con todos los comportamientos regulares de un formulario. Puede ver el código fuente HTML de un formulario en vivo y obtener la información que lo ayudará a simular las solicitudes POST.

Formulario HTML

Por ejemplo, mire el formulario de Spreadsheet Email Trigger . Aquí está el formulario HTML, limpiado para la legibilidad:





Never submit passwords through Google Forms.

Los elementos importantes están marcados en esta captura de pantalla:

Formulario HTML

Script para simular un envío de formulario de Google

Armado con la URL de acción y los nombres de campo, podemos codificar una función para enviar un formulario mediante progtwigción, modificando el ejemplo de la documentación de UrlFetch :

 // Simulate POST to form function sendHttpPost() { // Copy the entire URL from 
var formAction = "https://docs.google.com/spreadsheet/formResponse?formkey=#FORMKEY#&ifq"; var payload = { "entry.0.single": "Nelson", // First Name "entry.1.single": "10", // No of users "entry.2.single": "user@example.com" // Email ID }; // Because payload is a JavaScript object, it will be interpreted as // an HTML form. (We do not need to specify contentType; it will // automatically default to either 'application/x-www-form-urlencoded' // or 'multipart/form-data') var options = { "method": "post", "payload": payload }; var response = UrlFetchApp.fetch(formAction, options); }

Resultado

Este es el resultado de la secuencia de comandos anterior, se ha agregado una respuesta de formulario a la hoja de cálculo.

Captura de pantalla