Builder/ETC

[Google Sheets] 구글 시트 REST API

꼰대 2021. 6. 29. 19:05

구글 드라이브의 Sheets를 REST API로 연결할 수 있습니다.

이번글에서는 연결 설정 및 테스트 데이터 생성하여 GET까지 하겠습니다.

 

먼저 구글 드라이브로 들어가 새로운 Google 스프레드시트를 생성하고 테스트용 데이터를 입력합니다.

여기서 중요한 부분이 시트명입니다. 처음에는 "시트1" 한글명으로 되어 있는데 이를 영문으로 바꿔줍니다. 왜냐하면 요청 URL에 시트 이름이 들어가서 한글도 상관 없지만 혹시 몰라 영문으로 바꿔줍니다.

 

다음으로 우측 상단 공유 버튼을 클릭하고 "링크가 있는 모든 사용자로 변경"을 클릭하여 링크 복사 후 완료 버튼을 클릭합니다.

공유를 하지 않으면 외부에서 접근이 불가능합니다.

 

복사한 링크를 메모장에 붙여넣고 아래 이미지 중 드레그한 부분을 따로 복사해 저장해둡니다. 이 값은 시트의 아이디값으로 요청 URL에 포함되어야 합니다.

 

구글 시트 관련 설정은 끝났습니다.

이제 구글 개발자 페이지에서 API 포멧 정보를 확인하고 구글 클라우드 플렛폼 페이지에서 API키를 확인해야 합니다.

 

https://developers.google.com/sheets/api

 

Sheets API  |  Google Developers

 

developers.google.com

 

우선 API 관련 제한사항을 살펴보겠습니다. 위 페이지로 들어가 스크롤을 내려 좌측 하단의 Usage Limits 메뉴를 클릭합니다.

무료 버전에 대한 제한으로 100초 내 500번의 요청까지, 한 유저가 100초 내 100번 요청까지만 허용한다는 내용입니다. 당연히 돈을 내면 더 허용해줍니다.

 

다음으로 스크롤을 위로 올려 상단메뉴 Reference > 좌측 메뉴 spreadsheets.values > get을 클릭합니다.

여기서는 get HTTP 요청에 대한 URL 포멧이 정의되어 있으며 가장 기본적인 URL 포멧은 아래와 같습니다.

GET https://sheets.googleapis.com/v4/spreadsheets/{SHEET_ID}/values/fruit_sheet1?key={API_KEY} 

여기서 fruit_sheet1값은 시트 이름이고 SHEET_ID는 시트 공유 시 복사했던 시트 아이디값, API_KEY에 대해서는 이제 확인해봐야 할 내용입니다.

그리고 아래 화면의 파라미터 관련 내용은 데이터를 읽을 범위 및 방법에 대한 각종 옵션을 지정할 수 있습니다. 예를 들면 Sheet1!A2:D5 라는 옵션을 주면 A열 2행부터 D열 5행까지 읽겠다는 옵션입니다. 또한 API 스키마를 ROW 기준으로 응답값을 요청하던지 아니면 COLUMN 기준으로 요청할 수 있습니다.

참고로 구글에서는 요청에 대해 두가지 방법을 제공하며 여기서는 OAuth 2.0 방법 대신 API KEY 값에 의한 요청을 사용하고 있습니다.

 

이제 위 요청 URL에서 나머지 API_KEY에 대해 확인해야합니다.

 

https://console.cloud.google.com/

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

위 페이지로 들어가 상단 프로젝트 생성을 클릭하여 프로젝트 이름을 정의하고 만들기를 클릭합니다.

 

다음으로 상단 검색창에 Sheets API를 입력하고 검색합니다.

 

검색 결과 Google Sheets API를 선택하면 아래와 같은 화면이 출력되고 설치 버튼을 클릭합니다. (저는 미리 설치해서 관리 버튼으로 나옵니다.)

 

설치 종료 후 좌측 메뉴 홈으로 돌아가 좌측 메뉴 API 및 서비스 > 사용자 인증 정보를 클릭합니다.

 

다음 상단 사용자 인증 정보 만들기를 클릭하고 API키를 클릭하여 키 값을 생성합니다.

 

생성 후 API 키를 클릭하여 API 키 값을 복사합니다.

 

이렇게 하면 요청 URL

GET https://sheets.googleapis.com/v4/spreadsheets/{SHEET_ID}/values/fruit_sheet1?key={API_KEY} 

에 대한 각 항목 값을 모두 확인하였습니다.

 

간단하게 테스트를 해보면 아래와 같이 정상적인 응답값을 확인할 수 있습니다.

 

다음으로 Power Automate Desktop에서는 아래와 같이 요청합니다.

 

이에 대한 응답값을 받아 JSON으로 변환하면 아래와 같은 리스트 형태의 값을 얻을 수 있습니다. (타이틀 부분을 빼기 위해 A2부터 요청했습니다.)

 

* 참고

위에서 생성한 구글 시트 데이터 중 image 부분이 있습니다. 해당 부분은 삽입을 통해 셀 안에 이미지를 넣었고 이를 API로 호출 했을 때 Airtable처럼 이미지 URL 값이 있을 것으로 기대하고 테스트 해보았으나 위 결과와 같이 해당 열에 대한 값은 없이 응답이 왔습니다.

반응형

'Builder > ETC' 카테고리의 다른 글

[directus] 설치 방법  (0) 2021.05.28