라이브러리를 누릅니다.
calendar를 검색하고
사용설정을 합니다.
사용자 인증 정보로 갑니다.
사용자 인증 정보 만들기 에서 API 키 를 만듭니다.
키 제한을 할 수 있습니다.
calendar만 사용할수 있게 제한을 할 수 있습니다.
원하는 캘린더에 설정 및 공유 를 들어갑니다.
캘린더 엑세스 권한을 설정합니다.
캘린더 ID를 얻었습니다 🎉🎉🎉
${calendarID}는 찾은 calendarID 를 입력해 줍니다.
${googleKey}는 googleKey를 입력해 줍니다.
${minTime}검색할 최소 날짜를 입력해 줍니다.
${maxTime}검색할 최대 날짜를 입력해 줍니다.
시간은 RFC3339 룰을 사용합니다.
minTime를 2019-05-23T00:00:00Z
maxTime 2019-05-25T00:00:00Z
를 해보겠습니다.
calendarID 입력
googleKey 입력
최소 ~ 최대 일정 입력
~
(결과값 간단히 보기 )
const https = require('https');
const util = require('util');
exports.handler = (event, context, callback) => {
var todayDate = new Date();
// var yesterdayDate = new Date(todayDate.getTime() - 1000*60*60*24);
// var tomorrowDate = new Date(todayDate.getTime() + 1000*60*60*24);
// var twoDayAgoDate = new Date(todayDate.getTime() + 1000*60*60*24*2);
var calendarID = "";
var googleKey = "";
requestAPI({
"method": "GET",
"port": 443,
"hostname": "www.googleapis.com",
"path": `/calendar/v3/calendars/${calendarID}/events?orderBy=startTime&singleEvents=true&timeMax=${maxRFC3339(todayDate)}&timeMin=${minRFC3339(todayDate)}&key=${googleKey}`,
"content": "",
}, function(data) {
var data = JSON.parse(data);
console.log(data);
}, function(e) {
console.log(e);
});
const response = {
statusCode: 200,
headers: {"Access-Control-Allow-Origin": "*"},
body: "Success"
};
callback(null, response);
};
// 통신 API
function requestAPI(request, callback, errorCallback) {
const options = {
method: (request["method"] || "GET"),
hostname: (request["hostname"] || ""),
port: (request["port"] || 443),
headers: (request["headers"] || {"Content-Type": "application/json"}),
path: (request["path"] || "")
};
const req = https.request(options, (res) => {
res.setEncoding('utf8');
var body = '';
res.on('data', (chunk) => {
body = body + chunk;
});
res.on('end',function() {
if (res.statusCode == 200 || res.statusCode == '200') {
callback(body);
} else {
errorCallback(`statusCode Error: ${res.statusCode}`);
}
});
});
req.on('error', function (e) {
errorCallback(e.responseText)
});
req.write(util.format("%j", (request["content"] || "")));
req.end();
}
// 시간
function minRFC3339(date) {
var year = date.getFullYear();
var month = (date.getMonth() + 1 < 10) ? `0${date.getMonth() + 1}` : `${date.getMonth() + 1}`;
var day = (date.getDate() < 10) ? `0${date.getDate()}` : `${date.getDate()}`;
return `${year}-${month}-${day}T00:00:00Z`;
}
// 시간
function maxRFC3339(date) {
var year = date.getFullYear();
var month = (date.getMonth() + 1 < 10) ? `0${date.getMonth() + 1}` : `${date.getMonth() + 1}`;
var day = (date.getDate() < 10) ? `0${date.getDate()}` : `${date.getDate()}`;
return `${year}-${month}-${day}T23:59:59Z`;
}