2016-06-06 10 views
0

Ich habe komplett statische Website (ohne und Backend) mit form. Wenn der Benutzer mein Formular abschickt, mache ich eine jsonp-Anfrage an Google Apps Script. Mein GAS übernimmt die Anfrage und speichert Formulardaten an Goggle-Tabelle mit der folgenden Struktur:Wie generieren und wo eindeutige ID für Client speichern?

 Name  |  Age  |  City 
    ------------------------------------ 
     Eric  |  23  |  NYC 

Jetzt muss ich für jeden Benutzer-ID einzigartig speichern und speichern wie folgt aus:

 ClientId |  Name  |  Age  |  City 
    --------------------------------------------------- 
     dhs3kwhe |  Eric  |  23  |  NYC 

I don‘ t Einschränkungen des clientId-Formats, aber das einzige ist, dass clientId für jeden Client eindeutig ist.

Dies ist ähnliche Session-ID und es wäre cool, es zu verwenden, aber weil ich kein Backend habe, kann ich dieses nicht erzeugen.

Was ist der beste Weg, um mein Problem zu lösen?

EDIT:

Lassen Sie mich ein wenig, aber mein Problem erklären. Ich muss nicht nur eine eindeutige ID erzeugen, die ich mit einigen Algorithmen erzeugen könnte. Ich muss für jeden Benutzer clientId generieren. Sagen Sie User A füllt und senden Formular und wir generieren für ihn clientId wie . Das nächste Mal User A füllt und Formular abschicken muss er die gleiche ID bekommen.

Ein anderer User B wird eigene clientId haben, wenn er mein Formular einreicht.

+0

Mögliche Duplikat [Google Apps Script - eindeutige ID Zähler] (http://stackoverflow.com/questions/15397000/google-apps-script-unique-id-counter) – EnigmaRM

+0

Es scheint, andere haben lief auf dasselbe Problem wie du. Ich habe eine der obigen Antworten verknüpft. Eine mögliche Option besteht darin, die Zeilennummer an Text anzuhängen, den Sie mit dem Formular übergeben. Die akzeptierte Antwort umreißt diese Lösung. – EnigmaRM

+0

Verwenden Sie abhängig von der Größe Ihrer App eine weitere Option, verwenden Sie den UTC-Zeitstempel für die ID. – EnigmaRM

Antwort

0

Session.getActiveUser(). GetEmail() gibt Ihnen die eindeutige Google E-Mail-Adresse für jeden Benutzer.

Um jede ID zu speichern? Versuchen:

var userId = Session.getActiveUser().getEmail(); 
var scriptProperties = PropertiesService.getScriptProperties();  
scriptProperties.setProperty('username', userId); 
+0

Leider funktioniert das nicht für mich, da Benutzer, die mein Skript über eine JSONP-Anfrage ausführen, möglicherweise nicht im Google-Konto angemeldet sind. Also meine Skripte auch für anonyme Benutzer – Erik

Verwandte Themen