var Toggl = { BASIC_AUTH: 'XXXXXXXXXXXXXXXXX:api_token', get: function(path){ var url = 'https://api.track.toggl.com/api/v8' + path; var options = { 'method' : 'GET', 'headers': {"Authorization" : "Basic " + Utilities.base64Encode(this.BASIC_AUTH)} } var response = UrlFetchApp.fetch(url, options); return JSON.parse(response); }, getTimeEntries: function (){ var today = Moment.moment().parseZone('Asia/Tokyo'); var from_date = today.subtract(1, 'days').startOf('week').toISOString(); var to_date = today.endOf('week').add(1, 'days').toISOString(); var path = '/time_entries?' + "&start_date=" + from_date + "&end_date=" + to_date return this.get(path) }, } function main() { var togglLogSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TogglLog"); var timeEntries = Toggl.getTimeEntries(); var lastTimeEntryStop = togglLogSheet.getRange(1,1).getValue(); var lastTimeEntryDur = togglLogSheet.getRange(1,4).getValue(); for(var i in timeEntries) { var timeEntry = timeEntries[i]; if(timeEntry.stop <= lastTimeEntryStop) { continue; } if(timeEntry.duration < 0) { continue; } lastTimeEntryStop = timeEntry.stop var data = [] togglLogSheet.getRange(togglLogSheet.getLastRow() + 1, 1, 1, 4) .setValues([[new Date(timeEntry.start),new Date(timeEntry.start), timeEntry.description, Math.round(timeEntry.duration/60/60*100)/100]]); } togglLogSheet.getRange(1,1).setValue(lastTimeEntryStop); togglLogSheet.getRange(1,3).setValue(lastTimeEntryDur); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。