Cómo leer parametros de la URL con Google Apps Script

Hace poco un compañero preguntaba si era posible que un script  de GAS modificara su comportamiento a través de la URL usada. La respuesta es fácil, si, usando parámetros por URL.

Los parámetros se envían al script con ?nombre_param=valor_param al final de la URL

Dentro del código lo único que hemos de hacer es aceptar un parámetro en el doGet(e) y recoger el parámetro con la sintaxis e.parameter.nombre_param.

Con un ejemplo os quedará mucho más sencillo. Me he basado en el ejemplo de una web dinámica para hacer que en función del parámetro que se le pase en la URL use un html u otro.

index.html
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
   
    <script>
    function Response(string)
    {
       document.getElementsByName("ejemplo")[0].innerHTML = string;
    }
 
    function InitWeb()
    {
       google.script.run.withSuccessHandler(Response).Init();
    }
    </script>

  </head>
  <body>
    <h1>
    INDEX
    </h1>

    <script>
        InitWeb();
    </script>
 
<div name='ejemplo'>
    <p> Loading.... wait</p>
</div>

  </body>
</html>


index2.html
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    
    <script>
    function Response(string)
    {
       document.getElementsByName("ejemplo")[0].innerHTML = string;
    }
  
    function InitWeb()
    {
       google.script.run.withSuccessHandler(Response).Init();
    }
    </script>

  </head>
  <body>
    <h1>
    INDEX2
    </h1>

    <script>
        InitWeb();
    </script>
  
<div name='ejemplo'>
    <p> Loading.... wait</p>
</div>

  </body>
</html>

Código gs
function Init()
{
  var spreadsheet  = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1NA63mUiiG_ce3crX3PU_ISp8HwuwyKGRslqn2kyEYQM/edit#gid=0");  //Esta ruta será la que tengas a tu fichero que uses como BBDD
  var sheet        = spreadsheet.getActiveSheet();
  var rows         = sheet.getDataRange();
  var numRows      = rows.getNumRows();
  var values       = rows.getValues();
  var string = "";

  for(var i = 0 ; i < numRows ; ++i)
  {
    var row = values[i];
  
    string += "<p>" + row[0] + "</p>";
  
  }

  return string;
}

//Retorna la página principal en función del parámetro param que se le pase en la URL
function doGet(e)
{
   return HtmlService.createHtmlOutputFromFile(e.parameter.param);
 }

Una vez tengáis el código copiado deberéis implementarlo como aplicación web:


La ruta que os salga en la ventana de implementación web será la ruta en la que deberéis añadir vuestro parámetro.

Aquí os dejo los links de como queda:

Cualquier duda ya lo sabéis, espero que os haya gustado.

Nos vemos


No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...