2016-06-06 3 views
0

form으로 완전히 정적 인 웹 사이트 (백엔드가 없으며 백엔드)가 있습니다. 사용자가 내 양식을 제출할 때 jsonp 요청을 Google Apps Script으로 만듭니다. 내 가스는 요청을 처리하고 다음과 같은 구조와 고글 스프레드 시트로 양식 데이터를 저장합니다클라이언트의 고유 ID를 생성하고 저장할 위치는 어디입니까?

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

내가 돈 '

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

지금 나는이 같은 각 사용자에 대해 고유에 ID를 저장하고 저장해야 clientId 형식에 대한 제한은 없지만 단일 클라이언트 ID는 모든 클라이언트에 대해 고유해야합니다.

이 세션 ID는 비슷하지만 사용하기가 멋지지만 백엔드가 없어이 세션을 생성 할 수 없습니다.

내 문제를 해결하는 가장 좋은 방법은 무엇입니까?

편집 :

나에게 조금 보자하지만 내 문제를 설명합니다. 일부 알고리즘으로 생성 할 수있는 고유 ID를 생성 할 필요가 없습니다. 각 사용자마다 clientId을 생성해야합니다. 말하자면 User A 양식을 채우고 제출하면 clientId과 같은 jshhsd3을 생성합니다. 다음에 User A을 채우고 양식을 제출하면 동일한 ID 인 jshhsd3을 얻어야합니다.

또 다른 User B은 내 양식을 제출할 때 자신의 clientId입니다.

+0

[Google 애플리케이션 스크립트 - 고유 한 ID 카운터]의 가능한 중복 (http://stackoverflow.com/questions/15397000/google-apps-script-unique-id-counter) – EnigmaRM

+0

다른 사람이 보인다 당신과 같은 문제가 생겼습니다. 위의 답변 중 하나를 연결했습니다. 한 가지 가능한 옵션은 양식과 함께 전달하는 텍스트에 행 번호를 추가하는 것입니다. 수락 된 대답은 그 해결책을 설명합니다. – EnigmaRM

+0

앱 볼륨에 따라 다른 옵션이 있는데 ID에 UTC 타임 스탬프를 사용하십시오. – EnigmaRM

답변

0

Session.getActiveUser(). getEmail()은 각 사용자의 고유 한 Google 이메일 주소를 제공합니다.

각 ID를 저장 하시겠습니까? 시도 :

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

불행히도 JSONP 요청을 통해 스크립트를 실행하는 사용자가 Google 계정에 로그인하지 않기 때문에이 기능이 작동하지 않습니다. 익명 사용자도 사용할 수 있도록 내 스크립트가 있습니다. – Erik