2016-07-14 17 views
0

Eine seltsame Sache passiert. Vielleicht kann jemand es erklären oder vielleicht gibt es einen Fehler. Ich schreibe eine Webanwendung, die von einem an eine Tabelle gebundenen Apps-Skript ausgeführt wird. Die Webanwendung wird normal ausgeführt, wenn ich die Tabelle mit openById(), aber nicht getActiveSpreadsheet() öffne. Wenn ich die Seite lade, erhalte ich folgende Meldung: "TypeError: Die Methode" getSheetByName "kann nicht null aufgerufen werden (Zeile 11, Datei" Code ")". Es verhält sich so, als wäre es nicht an die Tabelle gebunden.Fehler bei der Verwendung von getActiveSpreadsheet mit Webapp an Sheets

Wenn ich jedoch doGet() manuell ausführen, erhalte ich den Fehler nicht. Daten werden erfolgreich aus dem Protokollblatt abgerufen. Hier ist mein Code ... wenn ich Zeile 1 auskommentiere und Zeile 2 auskommentiere, funktioniert das perfekt. Danke im Voraus.

function doGet() { 
     var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log'); 
     // var sheet = SpreadsheetApp.openById('abc123def456').getSheetByName('Log'); 
     var data = sheet.getDataRange().getValues(); 
     var t = HtmlService.createTemplateFromFile('index'); 
     t.data = data; 
     var evaluatedTemplate = t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME); 
     return evaluatedTemplate; 
    } 
+0

Ja, wahrscheinlich ein Duplikat. Ich wurde von diesem Thread inspiriert und kam zu einer anderen Problemumgehung, die keine zusätzliche Autorisierung durch den Endbenutzer erfordert. – weathertinker

+0

Bitte teilen Sie es in einer Antwort dann. –

+0

Macht nichts. Fehlgeschlagene Arbeit – weathertinker

Antwort

0

Entfernen Sie Ihre 'doGet()' Funktion. Wenn Ihr Skript ein Add-On ist, benötigt es kein doGet(). Verwenden Sie stattdessen onInstall, onOpen und verwenden Sie dann den HTML-Dienst zum Öffnen von Seiten.

Sie senden Google gemischte Signale.

Gebundene Skripts und Webapps sind unterschiedlich.

https://developers.google.com/apps-script/guides/bound

Verwandte Themen