Como poner en un iframe una web hecha con Google Apps Script


Artículo relacionado con la programación web mediante Google Apps Script

Un tema recurrente que he trabajado en este blog es el hecho de crear webs con google apps script.

Os he explicado como hacer webs, logins, chats, webs dinamicas,  y un largo etcétera pero nunca os he explicado un pequeño problema que podéis tener cuando queréis incrustar estas aplicaciones webs en otros sitios ( generalmente con un iframe ).... que no os funcionará :(.

El iframe es una funcionalidad que da HTML para poder incrustar webs dentro de webs, pero que en el caso de webs generadas con Google Apps Script se ha de ir con mucho cuidado y gestionarlo diferente de como estamos acostumbrados. Es muy normal tener problemas con este tema.

Así pues, que podemos hacer si tenemos problemas al hacer un iframe de nuestro Google Apps Script? Hace un tiempo, el equipo de Google solventó esto de una forma fácil aportando la funcionalidad de setXFrameOptionsMode. Resumiendo:

Teneis que cambiar este código antiguo:
function doGet()
{
  return HtmlService.createHtmlOutputFromFile('index');
}

Por este código nuevo
function doGet()
{
    return HtmlService.createTemplateFromFile('index')
        .evaluate() // El evaluate siempre debe estar antes del FrameOptions
        .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

Volvéis a publicar la web y ya lo tendréis funcionando.

Solo un último apunte, no podéis hacer iframe de un código en desarrollo ( /dev) siempre tendréis que hacer iframe de versiones publicadas.

Espero que os haya servido.

No vaciléis en hacerme llegar vuestras dudas

Nos vemos

NOTA: Si te ha gustado este post tal vez también te interese este otro sobre templates web

6 comentarios:

  1. hola, no me resulta, no logro quitar el molesto mensaje superior. Cambie la porcion de código que mencionas, pero nada...hay que hacer algo en el html tambien?

    ResponderEliminar
    Respuestas
    1. Hola,

      Una vez pones ese código has de hacer un iframe de la web resultante en otra web (un blog o un site por ejemplo). En el sitio donde hagas el iframe no verás el cartelito gris.

      Recuerda que para hacer el iframe deberás publicar la web (usarla con el /dev no te servirá)

      Cualquier duda, no vaciles en hacermela llegar

      Nos vemos

      Eliminar
    2. Hola, sabes cuál extensión debo utilizar en el src: para traer un file de google drive?

      Eliminar
    3. Hola Javier, disculpa, este comentario se me coló y lo acabo de ver ahora. No se a q te refieres, podrías explicarte un poco más? Nos vemos

      Eliminar
  2. Hola, disculpa ya pude lograr incrustar mi script pero si veo la incrustacion enmi telefono me aparece un mensaje "Documento de google ha detectado un error" y no puedo ver el script mas que solo en la computadora, te agradeceria mucho tu respuesta

    ResponderEliminar

Tal vez te interese