2017-06-08 5 views
0

Ich versuche, Daten mithilfe von HTML-Formularen oder AJAX an AppsScript zu senden, die an eine Google-Tabelle angehängt sind. Ich habe die App an den Staat, dass es funktioniert mit App für "jedermann, sogar anonym" eingesetzt.Veröffentlichen von Daten in Google Spreadsheet über AppsScript (private Bereitstellung)

Aber mein Ziel ist es, JS-Skript oder PHP zu erstellen, die Dienstkonto verwenden, um Daten zu dieser Tabelle zu authentifizieren und zu veröffentlichen.

Ich kann keine hilfreiche Dokumentation oder ein Beispiel finden.

Hier ist mein Code: [HTML]

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<form method="post" action="https://script.google.com/a/macros/domainname/s/AKfycbzVVBWfeffKo7OHdhAtjjgri0ouJ5qIkSjQTpsIISw8/exec"> 
 
    First name:<br> 
 
    <input type="text" name="firstname" value="test1"> 
 
    <br> 
 
    Last name:<br> 
 
    <input type="text" name="lastname" value="test2"> 
 
    <br><br> 
 
    <input type="submit" value="Submit"> 
 
</form> 
 

 
</body> 
 
</html>

[Apps Script]

function doPost(e) { 
 

 
    try { 
 
    var doc  = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sheet = doc.getSheetByName("Sheet1"); 
 
    
 
    
 
    sheet.getRange(1,1).setValue(JSON.stringify(e.parameters)); 
 
    
 
    } 
 
    catch(error) { 
 
    Logger.log(e); 
 
    } 
 
    finally { 
 
    return; 
 
    } 
 

 
}

Ich habe bereits das Dienstkonto und h ave die JSON-Datei mit clientID, Secrets usw. Ich stelle mir vor, dass ich den POST irgendwie mit diesen Daten anhängen muss, aber ich bin mir nicht sicher, wie das zu erreichen ist, damit Google Apps es authentifizieren wird.

Der Grund dafür ist, dass das Unternehmen, das diese App möchte, das Freigeben von Dokumenten für alle, die den Link aus Sicherheitsgründen haben, nicht aktivieren kann.

ich mit Einstellungen veröffentlichen müssen zeigen unter: enter image description here

Wenn ich „im Domain Jedermann“ Ich enter image description here

Deshalb möchte ich irgendwie meine Form auszuführen bekommen zu setzen, so dass es als Benutzer ausführt innerhalb dieser Domäne.

Kann jemand mit einigen Dokumentations-URLs oder einem Tutorial usw. helfen?

Mit freundlichen Grüßen Matt

Antwort

1

Es gibt keinen Grund Dienstkonten in diesem Fall zu verwenden, auch mit Einschränkung.

Veröffentlichen Sie die App so, dass sie wie Sie ausgeführt wird. Dann verwenden alle Tabellenaufrufe Ihre Anmeldeinformationen und nicht den Benutzer, der Ihre Webanwendung verwendet.

Es ist auch nicht möglich, 2-legged oauth mit Dienstkonten in apps Skript zu verwenden, es unterstützt nur 3-legged oauth.

+0

Ich habe meine Frage aktualisiert. Grundsätzlich ist das "Wer hat Zugriff auf die App" der Faktor, dem ich gehorchen muss. Im GAPS-Konto können diese Einstellungen nicht auf "Jeder, auch nicht anonym" oder "Jeder" gesetzt werden. Wenn ich also den Eintrag "Jeder in der Domäne" einstelle, hat mein auf einem Server gehostetes Formular keinen Zugriff darauf . Ich bekomme "Sorry, kann die Datei derzeit nicht öffnen". – Matt

+0

was meinst du mit "gehostet auf einem Server". Der Fehler, den Sie erhalten, ist entweder ein Skript Bug oder möglicherweise Sie gsuite Domain hat etwas deaktiviert, das GAS benötigt. –

+0

Meine form.html ist nur auf Apache gehostet. Ich möchte, dass es funktioniert, indem ich POST-Daten an eine Google-Tabelle sende. Ich habe es funktioniert gut, wenn das Skript mit Zugriff auf die App "Jeder, auch anonym" bereitgestellt wird. Das Problem ist, dass GAPS, an dem dies funktionieren soll, nicht erlaubt, Skripte auf diese Weise nur "Jeder in der Domäne" zu teilen. Ich suche nach dem Weg, um die POST-Daten als authentifiziert innerhalb dieser Domäne zu senden. – Matt

Verwandte Themen