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)