프론트엔드/JavaScript

구글 스프레드시트 API 조회하기 | Node.js

카엔입니다 2023. 5. 15. 11:33

구글 스프레드시트에서 작성한 내용을 API를 통해 조회해서 간단한 DB처럼 사용할 수 있는 방법에 대해서 알아보려합니다.

속도는 느리지만 간단한 DB용도 및 크롤링하기에 좋은 것 같습니다.

방법은 다음과 같습니다.

구글 스프레드시트 설정

1. 상단에 공유 버튼을 눌러 일반 액세스에 링크가 있는 모든 사용자가 볼 수 있도록 설정해주세요

2. 그 다음 링크 복사를 눌러 링크를 확인해보시면

https://docs.google.com/spreadsheets/d/`스프레드시트\_아이디`/edit?usp=sharing

d/에서부터 다음 / 까지 적혀있는 문자가 해당 스프레드시트의 ID입니다. 저 부분만 따로 복사해주세요.

Node.js 설정

지금 알아볼 것은 단순 조회이기에 fetchaxios와 같은 HTTP 비동기 통신만 하면됩니다.

const { data } = await axios.get(
    `https://docs.google.com/spreadsheets/d/${GOOGLE_SHEET_ID}/gviz/tq?sheet=${SHEET_NAME}`
);

여기서 GOOGLE_SHEET_ID는 방금 복사한 아이디 값이며 SHEET_NAME은 스프레드시트 하단에 있는 시트명 중 사용하실 시트명을 넣으시면 됩니다.

저 data를 조회해보시면 아래와 같이 나오게 됩니다

const convertData = (data) => {
    const splitStr = data.split("google.visualization.Query.setResponse(")[1];
    return JSON.parse(splitStr.slice(0, splitStr.length - 2)).table;
};

const { columns, rows } = convertData(data);

이제 불러온 데이터값을 적절히 사용하시면 됩니다.