1. 2020/09/10 - [Programmer/etc.] - Google Calendar API - 1.3. GCP 설정: 사용자인증 설정에 이어지는 글입니다.
2. Nodejs 웹서버에서 Google calendar API를 사용하는 방법이 기록된 글입니다.
Google Calendar API 사용을 위한 프로젝트 생성과 설정이 끝났다면,
이제 클라이언트 ID로 프로젝트에 연결하여 사용하면 된다.
이전 글 마지막에 클라이언트 정보가 담긴 JSON파일을 다운받았을 것이다.
해당 파일을 준비하자.
이 링크를 따라가면 샘플 코드를 확인할 수 있다. (다른 언어도 찾아보면 있다.)
developers.google.com/calendar/quickstart/nodejs
코드에서 수정해야하는 몇가지
(다들 알고 있겠지만... 기록차 작성한다.)
1. scope 설정
기본적으로 사용되는 코드에는 아래 scope로 설정되어있다.
OAuth 동의 화면을 만들때 사용하도록 설정한 API의 범위에 맞추어 작성해야한다.
const SCOPES = ['https://www.googleapis.com/auth/calendar.readonly'];
2. 파일명 설정
아마도, 다운받은 Client 정보 JSON 파일의 이름이 credentials.json이 아닐 것이다. 맞추어 작성한다.
fs.readFile('credentials.json', (err, content) => {
if (err) return console.log('Error loading client secret file:', err);
// Authorize a client with credentials, then call the Google Calendar API.
authorize(JSON.parse(content), listEvents);
});
3. JSON 설정
다운받은 JSON파일에는 키가 installed가 아니라 web으로 되어있다. 맞추어 작성한다.
(아래 코드의 두번째 줄 credentials.installed;)
function authorize(credentials, callback) {
const {client_secret, client_id, redirect_uris} = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(
client_id, client_secret, redirect_uris[0]);
// Check if we have previously stored a token.
fs.readFile(TOKEN_PATH, (err, token) => {
if (err) return getAccessToken(oAuth2Client, callback);
oAuth2Client.setCredentials(JSON.parse(token));
callback(oAuth2Client);
});
}
실행하기
1. 해당 코드를 실행하면 url이 나온다.
2. Url로 접속해 구글 로그인을 쭉 진행하다보면, 마지막으로 아래 화면을 볼 수 있을 것이다.
google에서 요청하는 몇 가지 요청을 진행하는 verifiaction 이 필요하며, 우선은 고급을 눌러 진행하자.
(verification은 다음 글에서 설명한다.)
3. 진행하면 내가 정했던 url으로 리다이렉트 되고, 해당 url에서 code=.... 를 확인할 수 있다
= 뒤부터 끝까지 복사해서 콘솔에 붙여넣으면 된다.
그럼 token.json 파일이 저장되고, 정보가 출력된다.
유의사항
해당 url에서 구글 계정의 권한을 허용한 다음에 token.json을 지우고 다시 시도하려고 하면
code의 / 가 %2F 으로 인코딩 된 상태로 리다이렉트 된다.
%2F를 /로 바꾸어 입력하던지, myaccount.google.com/permissions에서 권한 삭제 후 다시 시도하면 / 으로 구성된 URL로 리다이렉트 된다.
다음 글은 어플리케이션을 인증받는 것에 관련된 내용이다..
이전글
2020/09/09 - [Programmer/etc.] - Google Calendar API - 0. 시작하기
2020/09/10 - [Programmer/etc.] - Google Calendar API - 1.1. GCP 설정: 프로젝트 생성 및 API 사용 설정
2020/09/10 - [Programmer/etc.] - Google Calendar API - 1.2. GCP 설정: OAuth 인증 설정
2020/09/10 - [Programmer/etc.] - Google Calendar API - 1.3. GCP 설정: 사용자인증 설정
다음글
2020/09/10 - [Programmer/etc.] - Google Calendar API - 3. 어플리케이션 인증받기
관련글
2020/09/10 - [Programmer/etc.] - Google Calendar API - 번외. 추가 팁
'Programmer > etc.' 카테고리의 다른 글
Google Calendar API - 번외. 추가 팁 (0) | 2020.09.10 |
---|---|
Google Calendar API - 3. 어플리케이션 인증받기 (3) | 2020.09.10 |
Google Calendar API - 1.3. GCP 설정: 사용자인증 설정 (0) | 2020.09.10 |
Google Calendar API - 1.2. GCP 설정: OAuth 인증 설정 (0) | 2020.09.10 |
Google Calendar API - 1.1. GCP 설정: 프로젝트 생성 및 API 사용 설정 (0) | 2020.09.10 |