Google Sheet를 nodeJS로 연결하기 [googleapis]
안녕하세요~ 오늘은 개발자나 직장인이나 그 누구나 excel를 nodeJs와 연결해서
자신이 원하는 데이터를 get하거나 update하는 방법에 대해서 공유해 보려고 합니다.
1. https://console.cloud.google.com/apis/dashboard?project=burgerking-test
Google 클라우드 플랫폼
로그인 Google 클라우드 플랫폼으로 이동
accounts.google.com
로그인하기
2.
위 사진과 같이 검색창에 sheet api라고 검색하고 들어가 보자.
3. 사용이라는 button을 눌러 보자.
4. 사용자 인증정보로 들어와서 서비스계정을 만들어주도록 합시다.
여기서 서비스계정을 만들어야지 정보를 가져오고 싶은 sheet으로 접근이 가능합니다.
5. 서비스 계정 만들기 button을 클릭해서 서비스 계정 만들기
6. 아래와 같이 서비스계정을 생성한 다음 작업에 있는 버튼을 클릭하면 키관리라는 버튼을 클릭하자.
7. 키가 없으면 새 키 만들기를 통해서 key를 만들어 보자.
8. json 키로 만들어 주자.
9. 일단 위에까지 해줬다면 우리는 api를 사용할 준비가 되어있다. 다음은 data를 get하고 싶은 sheet로 들어가서 공유버튼을 누른다음
생성했던 서비스 계정을 추가 해주도록 하자.
10. npm i googleapis를 사용해서 라이브러리를 다운 받자.
const {google} = require('googleapis')
const { client_email, private_key } = require('./{만들어진 Key}.json');
const authorize = new google.auth.JWT(client_email, null, private_key, [
'https://www.googleapis.com/auth/spreadsheets',
]);
// google spread sheet api 가져오기
const googleSheet = google.sheets({
version: 'v4',
auth: authorize,
});
11. 위와 같이 접근이 끝났다면 이제 data를 가져오자
async function getData(){
try {
const response = (await googleSheet.spreadsheets.values.get({
spreadsheetId: '{자신이 가져오고싶은 sheet 고유아이디}'
range: `A1:B2`, // 어디 범위부터 어디까지 data를 가져올 것인지
})).data;
console.log(response);
} catch (err) {
console.error(err);
}
}
getData()
위 cosole에 나오는 값과 아래 sheet에서 값이 일치한다는 것을 알수가 있다.
12. data를 변경해 보자. 범위는 A1,A2를 변경할 것이며 데이터를 입력해주는 방법도 시트와 같형태로 values안에 넣어주면 된다.
async function insert(){}
try{
const response = (await googleSheet.spreadsheets.values.update({
spreadsheetId : '{sheet 고유 id}'
range: `A1:A2`,
valueInputOption:'RAW',
resource: {
values: [
['변경 A1'],
['변경 A2']
],
}
})).data;
} catch (err) {
console.error(err);
}
}
insert()
실행시켜보고 나면 위와 같이 데이터가 변경되는 것을 확인해 볼 수가 있다.
더 많은 api를 어떻게 사용하는지 알아보고 싶다면
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update
Method: spreadsheets.values.update | Sheets API | Google Developers
Send feedback Method: spreadsheets.values.update Stay organized with collections Save and categorize content based on your preferences. Sets values in a range of a spreadsheet. The caller must specify the spreadsheet ID, range, and a valueInputOption. HTTP
developers.google.com
이 싸이트에 들어가서 더 확인해 볼 수 있다.