//// == 工程コンフィグの参照 / Config Retrieving ==
var oauth2 = configs.get( "conf_OAuth2" ) + "";
var calendarId = configs.get( "conf_CalendarId" ) + "";
var timezone = configs.get( "conf_Timezone" ) + "";
var dataIdC = configs.get( "conf_DataIdC" ); // returns key
var dataIdD = configs.get( "conf_DataIdD" ); // returns key
var dataIdF = configs.get( "conf_DataIdF" ); // returns key
var dataIdX = configs.get( "conf_DataIdX" ); // returns key
//// == ワークフローデータの参照 / Data Retrieving ==
var startDate = data.get( dataIdC ) + ""; // "YYYY-MM-DD"
var endDate = data.get( dataIdD ) + ""; // "YYYY-MM-DD"
//// == 演算 / Calculating ==
// Set API Request
var apiRequest = httpClient.begin();
apiRequest.queryParam( "calendarId", calendarId );
apiRequest.queryParam( "orderBy", "startTime" );
apiRequest.queryParam( "singleEvents", "true" );
apiRequest.queryParam( "timeMax", endDate + "T23:59:59" + timezone ); // for request
apiRequest.queryParam( "timeMin", startDate + "T00:00:00" + timezone );
apiRequest.queryParam( "timeZone", timezone ); // Time zone for response
// Set OAuth2 Access Token
var token = httpClient.getOAuth2Token( oauth2 );
apiRequest.bearer( token );
// API Access
var accessLog = "";
var uri = "https://www.googleapis.com/calendar/v3/calendars/calendarId/events";
var response = apiRequest.get( uri );
var statusCode = response.getStatusCode() + "";
accessLog += "---GET request--- " + statusCode + "\n";
accessLog += response.getResponseAsString() + "\n";
// Retreive Response-JSON Properties
var calendarEventsStr = "";
if( statusCode == "200" ){
var responseObj = JSON.parse( response.getResponseAsString() );
for( var i = 0; i < responseObj.items.length; i++ ){
if( "date" in responseObj.items[i].start ){
// "date": "2017-07-24"
calendarEventsStr += responseObj.items[i].start.date;
calendarEventsStr += "\t(--:--):\t";
calendarEventsStr += responseObj.items[i].summary; //
}else if( "dateTime" in responseObj.items[i].start ){
// "dateTime": "2017-07-24T12:00:00+09:00"
calendarEventsStr += responseObj.items[i].start.dateTime.substring(0,10);
calendarEventsStr += "\t(" + responseObj.items[i].start.dateTime.substring(11,16) + "):\t";
calendarEventsStr += responseObj.items[i].summary; //
}
calendarEventsStr += "\n";
}
}
//// == ワークフローデータへの代入 / Data Updating ==
retVal.put( dataIdF, calendarEventsStr );
if( dataIdX !== "" ){
retVal.put( dataIdX, accessLog );
}
//retVal.put( "q_debugLog", debugLog );