Esta es mi primera pregunta aquí y soy bastante nuevo en js y html, así que disculpe si me falta algo obvio.
Objetivo: quiero crear una secuencia de comandos que cree una carpeta en Google Drive, pero solo si aún no existe. En esa carpeta debería crear un .txt que contenga cierta información. Después de eso, quiero una nueva pestaña para abrir automáticamente la URL del archivo txt recién creado.
Si inserto una URL normal en mi .html (como "https://www.google.com") todo funciona perfectamente bien. Sin embargo, estoy atascado en la parte donde Apps Script entrega la URL capturada del archivo recién creado a mi html.
¡Cualquier ayuda es apreciada!
Código de script de Google Apps (Código.gs):
function myFunction() { var FData = "Very important Data" var destFolder = DriveApp.getFoldersByName("Folder"); //create Drive folder if not already created var destFolder = destFolder.hasNext() ? destFolder.next() : DriveApp.createFolder("Folder"); var fileName = "Status.txt"; //create txt file in that folder and add data to it var newFile = destFolder.createFile(fileName,FData); var url = newFile.getUrl(); //?GIVE THIS URL TO openUrl.html? var htmlOutput = HtmlService.createHtmlOutputFromFile('openUrl').setHeight(100); SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Opening...'); }HTML (openUrl.html):
<!DOCTYPE html> <html> <head> <base target="_top"> <script> var urlToOpen = url; //insert grabbed Url here var winRef = window.open(urlToOpen); google.script.host.close(); </script> </head> <body> </body> </html>En su guión, ¿qué tal la siguiente modificación?
function myFunction() { var FData = "Very important Data" var destFolder = DriveApp.getFoldersByName("Folder"); var destFolder = destFolder.hasNext() ? destFolder.next() : DriveApp.createFolder("Folder"); var fileName = "Status.txt"; var newFile = destFolder.createFile(fileName, FData); var htmlOutput = HtmlService.createTemplateFromFile('openUrl'); htmlOutput.url = newFile.getUrl(); SpreadsheetApp.getUi().showModalDialog(htmlOutput.evaluate().setHeight(100), 'Opening...'); } <!DOCTYPE html> <html> <head> <base target="_top"> <script> var urlToOpen = "<?!= url ?>"; var winRef = window.open(urlToOpen); google.script.host.close(); </script> </head> <body> </body> </html>myFunction() , HTML abre un cuadro de diálogo que incluye la url usando una plantilla HTML.