Google Calendar 연동

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)