Google Calendar + Server to Server 연동 + G Suite
Google Calendar API 활성화
https://console.developers.google.com/ 에 접속해서, ‘Google Calendar API’ 검색 후 사용 설정
https://console.cloud.google.com/apis/credentials/serviceaccountkey 를 통해 서비스 계정 추가(서버 to 서버 연동을 위함)
json 파일을 다운받아 두고, 해당 계정의 고유 ID 를 기억해 둔다.
https://admin.google.com/ 에 접속해서 G Suite 의 관리자 페이지로 접근한다.
보안 – 고급 설정에 진입한다.
도메인 전체 위임 아래의 도메인 전체 위임 관리에 접근한다.
새로 추가를 눌러서
클라이어트 ID 와 범위(https://www.googleapis.com/auth/calendar) 를 입력하고 승인을 누른다.
Node.js 예제는 아래와 같다.
$ npm install googleapis --save
const {google} = require('googleapis');
const key = require('./[YOUR_SERVICE_ACCOUNT_FILE].json');
const SCOPES = 'https://www.googleapis.com/auth/calendar';
const getList = async () => {
var auth = new google.auth.JWT(
key.client_email,
null,
key.private_key,
SCOPES,
'YOUR_PRIMARY_EMAIL_ID'
);
const calendar = google.calendar({
version: 'v3',
auth
});
const res = await calendar.events.list({
calendarId: 'YOUR_CALENDAR_ID',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime',
});
const events = res.data.items;
if (events.length) {
events.map((event, i) => {
const start = event.start.dateTime || event.start.date;
console.log(`${start} - ${event.summary}`);
});
}
}
getList();
YOUR_SERVICE_ACCOUNT_FILE : 위에서 다운 받은 서비스 계정(json 파일)
YOUR_PRIMARY_EMAIL_ID : G Suite 에 속한 계정의 email ID
YOUR_CALENDAR_ID : API로 사용하고자 하는 Calendar ID(캘린더 – 설정 및 공유 – 캘린더 통합 – 캘린더 ID)