Obtener ursl de archivos seleccionados desde Google Picker

95 views
Skip to first unread message

Salva Solbes Amor

unread,
Apr 24, 2021, 4:02:44 AM4/24/21
to Apps Script en Español
Hola, necesito ayuda. Dispongo de este código que obtiene la url de archivos seleccionados con el buscador de archivos de Drive (Google picker). Necesito obtener no sol de una url, sino de todas las urls que seleccione y luego dirigirlas a la celda activa, separadas con comas. Parte del código lo he optenido de esta página: https://www.labnol.org/code/20039-google-picker-with-apps-script

Tal como está solo obtengo la url del primer archivo seleccionado. En la función function createPicker(token)  he indicado .addView(google.picker.ViewId.DOCS)
            .enableFeature(google.picker.Feature.NAV_HIDDEN) y 
            .enableFeature(google.picker.Feature.MULTISELECT_ENABLED) para poder seleccionar más de un archivo o carpeta.

Gracias por vuestra ayuda. Un saludo

function pickerCallback(data) {
      var url = 'nothing';
      
      var action = data[google.picker.Response.ACTION];
      
      if (action == google.picker.Action.PICKED) {
        
        var doc = data[google.picker.Response.DOCUMENTS][0];   
        var id = doc[google.picker.Document.ID];
        var title = doc[google.picker.Document.NAME];
        var url = doc[google.picker.Document.URL];
        
        var message = '<b>You chose:</b><br>Name: <a href="' + url + '">' + title +
            '</a><br>ID: ' + id;

           document.getElementById('result').innerHTML = message;
      
      } else if (action == google.picker.Action.CANCEL) {
        
        document.getElementById('result').innerHTML = 'Picker canceled.';
      }
    }

Omar Raygoza

unread,
Jan 27, 2022, 7:14:23 PM1/27/22
to Apps Script en Español
Hola. Creo que primero hay que validar qué te está llegando a tu Callback function, para saber si te llega uno o varios ID de archivo.
Puedes validar qué llega convirtiendo tu variable data a un JSON y de ahí Loggearlo.}
Logger.log(JSON.stringify(data))

Lo que pasa es que no puedo ver en tu código cuándo es que llamas al Callback, supongo que ese callback lo llavas desde un evento Click o Active o algo así, entonces sería conveniente saber qué viene de ese padre.

Ahora bien, si el Callback es llamado cada evento clic, entonces podrías ir guardando los "data" en un array global o un array de objetos global.

Espero que la información te sea de utilidad.

Saludos.
Omar Raygoza
Reply all
Reply to author
Forward
0 new messages