Skip to content

Instantly share code, notes, and snippets.

@daiiz
Created December 26, 2015 17:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daiiz/aeceb74921bee5b80204 to your computer and use it in GitHub Desktop.
Save daiiz/aeceb74921bee5b80204 to your computer and use it in GitHub Desktop.
var spreadsheet_uri = 'スプレッドシートのURL';
function doGet (e) {
var res = ContentService.createTextOutput();
res.setMimeType(ContentService.MimeType.JAVASCRIPT);
var json = {};
if (e !== undefined && e.parameters !== undefined) {
var uri = (e.parameters.uri !== undefined) ? e.parameters.uri[0] : undefined;
var num = (e.parameters.num !== undefined) ? e.parameters.num[0] : undefined;
// uri, numのどちらかが与えられることを期待
if (uri !== undefined) {
json = {
'uri': uri,
'num': saveUriToSheet(uri)
};
}else if (num !== undefined && (+num) === (+num)) {
json = {
'uri': getUriFromSheet(+num),
'num': +num
};
}
}
res.setContent(JSON.stringify(json));
return res;
}
// URI記録用のSpreadsheetを取得する
function getSheet () {
var book = SpreadsheetApp.openByUrl(spreadsheet_uri);
var sheet = book.getActiveSheet();
return sheet;
}
// 取得したSheetにURIを記録して,番号を返す.
function saveUriToSheet (uri) {
var sheet = getSheet();
// URIが含まれる最終行を取得
var last_row = sheet.getLastRow();
// 新たに保存する
var r = Math.max(51, last_row + 1);
sheet.getRange(r, 1).setValue(uri);
sheet.autoResizeColumn(1);
return r;
}
function getUriFromSheet (num) {
var sheet = getSheet();
return sheet.getRange(num, 1).getValue() || '';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment