An alle Google Apps-Experten - bitte helfen Sie mir, dies zu lösen. Ich bin ziemlich festgefahren und habe noch keine Erklärung gefunden, warum dieses Problem überhaupt existiert. Ich habe ein Live-Beispiel hinzugefügt, um das Problem zu demonstrieren.Google Picker wird bei Verwendung in Google Sites leer angezeigt
Das Problem an diesem Ort seinen Blick kann ... https://sites.google.com/a/growthhq.net/faulty-picker/
Ein Google Apps-Skript zur Verfügung gestellt in einem Google Site des Apps Script Gadget hat vor kurzem gestoppt funktioniert. Das Verrückte daran ist, dass die App perfekt mit den URLs 'dev' und 'exec' für die App funktioniert, aber beim Einbetten der App in Sites (mit der 'exec'-URL und dem Google Apps Script-Gadget) und dem Klicken auf die Schaltfläche Das Formular wird leer angezeigt.
Ich weiß, dass die UiApp veraltet ist (leider hatte dies einige gute Attribute), aber ich möchte den Rest des Codes in diesem Stadium nicht ändern.
Was kann ich tun, damit der Picker auf Websites korrekt angezeigt wird? Ist der Referrer nicht ausreichend spezifiziert? Ich bin total am Ende.
Die aktivierten referrers sind:
* .google.com
* .googleusercontent.com
I (und vereinfacht) die Codeteile für Testzwecke entnommen wurden. Dieser Arbeitstestcode folgt:
// refer to https://developers.google.com/apps-script/guides/dialogs#file-open_dialogs for setting up OAuth
function doGet()
{
var app = UiApp.createApplication();
var buttonHandler = app.createServerHandler('utilityPicker');
var button = app.createButton('Open Picker', buttonHandler)
app.add(button);
return app;
// This is a dummy to activate
DriveApp.getRootFolder();
}
function utilityPicker(e){
var app = UiApp.getActiveApplication();
var authToken = ScriptApp.getOAuthToken();
Logger.log(authToken);
var docPicker = app
.createDocsListDialog()
.setOAuthToken(authToken)
.setDialogTitle('Select a Google Spreadsheet or Form to be used by this Workspace')
.setMultiSelectEnabled(true)
.addView(UiApp.FileType.FOLDERS)
.showDocsPicker()
;
Logger.log(docPicker);
docPicker.addView(UiApp.FileType.SPREADSHEETS);
var handler = app.createServerHandler('pickerPrimarySpreadsheet');
docPicker.addSelectionHandler(handler);
return app;
}
function pickerPrimarySpreadsheet(e)
{
Logger.log(e.parameter);
}
Bitte helfen Sie.
Haben Sie versucht, die Chrome-Dev-Tools zu verwenden, um das Verhalten des Codes zu sehen? Überprüfen Sie außerdem [Bereitstellen der Web-App] (https://developers.google.com/apps-script/guides/web?csw=1#deploying_a_script_as_a_web_app), wenn Sie Ihre App ordnungsgemäß auf Ihrer Website bereitgestellt haben. –
Ich habe die Bereitstellung überprüft. Sie können dieses Verhalten hier sehen ... https://sites.google.com/a/growthhq.net/faulty-picker/ Aber ich bin mir nicht sicher, wonach ich mit den Chrome Dev-Tools suchen soll, da es als Google läuft Apps Script - und damit effektiv vom Google Server. Sie können auch das korrekte Verhalten des bereitgestellten Links sehen. –