En un principio la idea de automatizar respuestas a un formulario de google me surgió en uno de mis trabajos con Arduino Yun. Parto del supuesto de que necesito medir remotamente unos determinados parámetros. Leo, envío a la nube los valores medidos y puedo consultarlos desde cualquier sitio (incluido mi móvil).
Me quedé sin ideas y dejé de hacer cosas con arduino. El otro día en una sobremesa estuvimos hablando de IPs estaticas e IPsdinámicas, si se podía hacer esto o no hacerlo, que si te cambia la IP no puedes pensar en establecer tu propia red, etc...
Me surgió la pregunta ¿puedo conocer remotamente la IP dinámica de mi instalación desde cualquier sitio? Después de pensarlo, después de hacer unas cuantas pruebas recuperé la vieja idea de automatizar respuestas a un formulario.
- Obtengo la IP. Es fácil. De momento, estoy en los preliminares, la leo de una de las páginas web que me dan ese servicio (www.cualesmiip.com).
- Esta lectura la puedo hacer automaticamente abriendo www.cualesmiip.com desde vbasic como si fuera un libro excel mas.
- Workbooks.Open Filename:="http://www.cualesmiip.com/"
- Hecho esto, en principio, la dirección IP aparece en la celda A31.
- Esto no quiere decir que siempre vaya a ser así, la página web puede ser modificada en cualquier momento.
Creo un formulario google, con salida a una hoja de cálculo:
Si quiero automatizar el envío de un formulario necesito conocer tanto la acción que se ejecuta al pulsar "Envío" como el nombre de los distintos campos de pregunta. Son nombres internos que hay que buscar en el código fuente del formulario:
- El la inmensa sopa de letras que supone el código fuente de un formulario encontrar la acción y los nombres de las preguntas parece imposible pero es relativamente sencillo.
Una vez encontrados acción y preguntas lo llevamos un código vbasic, como el siguiente:
Sub DireccionIP()
Dim IP, NL, Accion, Prg1, Prg2, Lin
'
' Abrimos y obtenemos IP de www.cualesmiip
'
Workbooks.Open Filename:="http://www.cualesmiip.com/"
IP = ActiveSheet.Range("a31").Value
ActiveWindow.Close
'Preparamos respuesta al formulario
Accion = "https://docs.google.com/forms/d/e/1FAIpQLScChBMMMdog1LT4leKk2WF0DDd32-aeWLll57YjVVjvBvJGhw/formResponse?"
Prg1 = "entry.1464650708=" & IP
Prg2 = "entry.1464650708=" & Now()
Lin = Accion & Prg1 & "&" & Prg2
'enviamos la acción
Workbooks.Open Filename:=Lin
ActiveWindow.Close
End Sub
- Ya solo queda comprobar que el envío se ha realizado. Voy a mi google drive, abro la hoja de cálculo que he creado para contener las repuestas y veo que si se ha producido el envío.
- Por triplicado, de momento no se por que, pero ahí está la dirección IP pedida.
- Como estoy en los preliminares, me doy casi por satisfecho, aunque el resultado presente varios defectos y falte casi totalmente el desarrollo de la idea, he conseguido enviar vía excel la dirección IP obtenida en www.cualesmiip.com a mi google drive. Ya la tengo en red, ya puedo consultarla desde cualquier sitio. De momento se que se puede hacer de un modo relativamente sencillo.
No hay comentarios:
Publicar un comentario