2016-04-12 24 views
1

Wie kann ich die Seitenleiste für anonyme Betrachter (oder Editoren) anzeigen? Ich habe versucht, sich mit den normalen und installierbar Trigger:Anzeigen der Seitenleiste für Betrachter

Normale Trigger:

function onOpen(){ 
    var html = HtmlService.createHtmlOutputFromFile('Page') 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
    .setTitle('My custom sidebar') 
    .setWidth(300); 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
    .showSidebar(html); 
} 

Das mit dem Besitzer der Tabelle gearbeitet, aber mit anonymen Benutzer hat nicht funktioniert, obwohl alle mit dem Link Bearbeitungserlaubnis hat.

installierbaren Triggers:

function showSidebar(){ 
    ... the same body of the previous 'onOpen' function 
} 

Dann gebunden I die Funktion showSidebar zu einem installierbaren Trigger, der aufgerufen wird, wenn das Tabellenkalkulations geöffnet wird.

Dies funktionierte nicht mit dem Besitzer oder einem anonymen Benutzer!

Schließlich versuchte ich, die Funktion showSidebar an ein Bild zu binden, das in die Tabelle eingefügt wurde, aber nicht mit einem anonymen Benutzer arbeitete. Es zeigt eine Meldung

Script showSidebar einen Fehler aufgetreten

sagen, und auch wenn die endgültige Methode gut funktioniert, es wird die Seitenleiste nicht automatisch angezeigt.

+0

Fügen Sie ein Beispiel von dem, was Sie bereits versucht haben, einschließlich des Codes und einer Beschreibung dessen, was passiert ist. –

+0

Hinzugefügt mehr Details ... –

+0

Es gibt ein offenes Problem, das verwandt sein könnte: [Problem: 5747 Auslöser für anonyme Benutzer/Skript für anonyme Benutzer] (https://code.google.com/p/google-apps-script -issues/issues/detail? id = 5747) –

Antwort

1

Es sieht für mich aus, dass der Code fast der gleiche von https://developers.google.com/apps-script/guides/dialogs#custom_sidebars ist. Das hat zwei Dateien, Code.gs und Page.html. Da der OP den Code von Page.html nicht erwähnt hat, ist es sehr wahrscheinlich, dass es bei seinem Versuch fehlte, denselben Code zu verwenden, wie das OP funktionierte, wenn der Code der Page.html Datei enthalten ist und die Datei geöffnet ist durch den Besitzer von einem Herausgeber.

Bei der Ausführung als anonymer Benutzer wird OnOpen nicht ausgeführt, wenn die Tabelle von einem anonymen Benutzer mit Anzeige- oder Bearbeitungszugriff geöffnet wird. Es gibt einen Bericht dazu im Issue Tracker Google Apps im Zusammenhang

Issue: 5747 Trigger for anonymous user/script for anonymous user


UPDATE:

Von einer answer von +Samantha zu einem ähnlichen Thread in dem Google Text & Tabellen-Hilfeforum

Damit Skripte auf einem Google-Blatt ausgeführt werden können, muss der Benutzer unter angemeldet sein und über die Berechtigung zum Bearbeiten verfügen. Das bedeutet, dass anonyme Benutzer kein Skript ausführen können.

Wenn Sie möchten, dass diese Funktion zu Skripts hinzugefügt wird, empfehle ich Ihnen, zur Seite "Google Developers 'Apps Script" zu navigieren und die Schaltfläche "Feedback senden" zu drücken.


-Code aus dem ersten Link

Code.gs

function onOpen() { 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .createMenu('Custom Menu') 
     .addItem('Show sidebar', 'showSidebar') 
     .addToUi(); 
} 

function showSidebar() { 
    var html = HtmlService.createHtmlOutputFromFile('Page') 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
     .setTitle('My custom sidebar') 
     .setWidth(300); 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .showSidebar(html); 

Seite.html

Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" /> 
+0

Ja, es ist der gleiche Code. Ich habe es von developer.google.com kopiert. Das von Ihnen erwähnte Problem erklärt alles. Ich habe es so dargestellt, dass Google ihm mehr Aufmerksamkeit schenken könnte. Aber das bedeutet, dass ein anonymer Benutzer ** niemals ** eine Seitenleiste sehen kann, richtig? –

+0

** Nie ** ist ein starkes Wort, insbesondere wenn die Formatierung fett formatiert ist. Derzeit weiß ich nicht, wie ich einem anonymen Benutzer eine Seitenleiste in einer Google-Tabelle anzeigen kann. –

+0

@OsamaSalah: Ich habe meine Antwort aktualisiert. –

Verwandte Themen