Google Sheet를 API로 사용하는 방법: 구글 스프레드 시트 API

Google Sheet를 API로 사용하는 방법: 구글 스프레드 시트 API
Photo by Pawel Czerwinski / Unsplash

서론

이번 시간에는 스프레드 시트를 API로 사용하는 방법을 알아보도록 하겠습니다 ! NodeJS 기준으로 작성되어있으니 참고 바랍니다 😉

Google Cloud 프로젝트 생성

Cloud Computing Services | Google Cloud
Meet your business challenges head on with cloud computing services from Google, including data management, hybrid & multi-cloud, and AI & ML.
구글 클라우드의 콘솔 버튼

콘솔에 접속해줍니다.

IAM 및 관리자/프로젝트 만들기

IAM 및 관리자에서 프로젝트 만들기를 들어가주세요.

프로젝트 만들기 폼

프로젝트를 생성해주세요. 🎉

서비스 계정 생성

API 및 서비스/사용자 인증 정보

이제 API 및 서비스의 사용자 인증 정보를 들어갑니다.

사용자 인증 정보 만들기/서비스 계정

상단에 사용자 인증 정보 만들기의 서비스 계정으로 들어갑니다.

서비스 계정 만들기 폼

양식을 채우고 완료를 눌러주세요. 😉

사용자 인증 정보의 이메일

자. 이제 사용할 스프레드 시트에 해당 이메일을 공유해주면 됩니다 ! 파란색 박스의 이메일을 복사해주세요.

API로 사용할 구글 스프레드 시트

자. 이제 공유 공유 버튼을 클릭하고 복사해두었던 계정과 공유합니다.

스프레드 시트 API 사용하기

API 및 서비스/라이브러리

스프레드 시트 API 사용을 위해서 라이브러리를 눌러주세요.

Google Sheets API 를 누르고 '사용' 버튼을 눌러 활성화해주세요.

키 발급 받기

사용자 인증 정보의 이메일

다시 '사용자 인증 정보'로 돌아와서 이메일을 클릭합니다.

상요자 인증 정보/키/새 키 만들기

키 생성을 위하여 '키' 탭을 눌러서 '키 추가'의 '새 키 만들기'를 누릅니다.

새 키 만들기/JSON 설정

JSON으로 만드시고 코드단에서 인증을 해야합니다.

이제 데이터를 가져와볼까요?: Google Sheet 데이터 가져오기

// 인증에 필요한 정보를 .meta/google-credentials.json에서 가져온다.
import { client_email, private_key } from '../.meta/google-credentials.json';
// googleapis 라이브러리에서 google 객체를 가져온다.
import { google } from 'googleapis'

// 구글 인증을 위해 JWT (JSON Web Token) 객체를 생성한다.
// 이 객체는 구글 API에 접근 권한을 주는데 필요하다.
const authorize = new google.auth.JWT(
  client_email,        // 서비스 계정 이메일
  undefined,           // 해당 키 파일의 경로 (사용하지 않을 경우 undefined)
  private_key,         // 개인 키
  [                    // 요청할 권한 목록
    'https://www.googleapis.com/auth/spreadsheets'
  ]
);

// 구글 스프레드시트 API에 요청을 보낼 객체를 생성한다.
// 이 객체를 사용해 실제 API 요청을 수행한다.
const googleSheet = google.sheets({
  version: 'v4',  // API 버전
  auth: authorize // 위에서 생성한 인증 객체
});

// 비동기 함수를 사용해 스프레드시트에서 데이터를 가져온다.
// 여기서는 스프레드 시트 ID와 데이터를 가져올 범위 (A1:B4)를 지정한다.
const context = await googleSheet.spreadsheets.values.get({
  spreadsheetId: '스프레드 시트 ID', // 실제 스프레드시트의 ID를 입력
  range: 'A1:B4',                    // 가져올 데이터의 범위
});

여기서 스프레드 시트 ID는 spread sheet 주소(붉은 박스)에서 알 수 있습니다.

흰색으로 가려진 부분은 임의로 가렸습니다. /d/ 이후부터 /edit 까지가 스프레드 시트 ID 입니다 !