スプレッドシートの Google App Script フォームからのユーザー入力をプライベート キャッシュに保存しようとしています。
テストスクリプトは次のとおりです。
var cache = CacheService.getPrivateCache();
function onLoad() {
var sheet = SpreadsheetApp.getActiveSpreadsheet(),
entries = [{
name : "Show form",
functionName : "showForm"
}];
sheet.addMenu("Test Menu", entries);
}
function showForm() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(),
app = UiApp.createApplication(),
setButton = app.createButton("Set"),
setHandler = app.createServerClickHandler('setTest');
setButton.addClickHandler(setHandler);
app.add(setButton);
spreadsheet.show(app);
}
function setTest(event) {
cache.put("test", "test", 7200);
Browser.msgBox("Test was set: " + cache.get("test") + ". Use the getTest cell formula to test the cache.");
}
function getTest() {
var result = cache.get("test");
return result;
}
メニュー ボタンをクリックすると、フォームが表示され、サーバー ハンドラーにキャッシュ値が設定されます。次に、セルで =getTest() を使用してキャッシュから値を取得しようとします。キャッシュが値「test」を返すことを期待しますが、null を返すようです。
ここでこの問題を開始しました: http://code.google.com/p/google-apps-script-issues/issues/detail?id=2039
また、別の同様のものも見つけました: http://code.google.com/p/google-apps-script-issues/issues/detail?id=1804
フォームへのユーザー入力の一部をキャッシュに保存し、後で別の関数からアクセスできるようにしようとしています。
助言がありますか?