明らかに、IDはスクリプトのインスタンス内で一意ですが、IDはユーザーのすべてのスクリプトで一意ですか?ドメイン用(Googleアプリ用)?それとも、それは宇宙全体(つまりGoogle)でユニークですか?
データがアプリケーション間で共有されている場合、IDを一意の参照番号にすることはできますか?
明らかに、IDはスクリプトのインスタンス内で一意ですが、IDはユーザーのすべてのスクリプトで一意ですか?ドメイン用(Googleアプリ用)?それとも、それは宇宙全体(つまりGoogle)でユニークですか?
データがアプリケーション間で共有されている場合、IDを一意の参照番号にすることはできますか?
Googleは、それがそのスクリプトにのみ固有のものであることを確認しました:
ScriptDB IDは、事前定義されたスクリプトの保存データに対して一意です。残りは未定義の動作であり、それに依存することはあまり信頼できません。重大ではない状況では可能ですが、に基づいて一意のIDを生成することはお勧めしません
var now = new Date();
var id = UiApp.getActiveApplication().getId();
var user = Session.getActiveUser().getUserLoginId();
Math.random();
IDを取得するには、文字列内のすべてを結合し、文字列ダイジェストを計算し、Base64を使用して結果をエンコードする必要があります。ただし、このソリューションは真にランダムな値ではないため、真に一意のUUIDを生成する関数を作成するようにGoogleに依頼することをお勧めします。
コードは
function getUniqueId() {
var now = new Date();
var id = UiApp.getActiveApplication().getId();
var randStr = '';
for (var i = 0; i < 10; i++) {
randStr += Math.random();
}
var user = Session.getActiveUser().getUserLoginId();
var str = '' + now + id + randStr + user;
var digets = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, str);
var res = Utilities.base64Encode(digets);
res = res.substr(0, res.length - 2);
return res;
}