버전 업그레이드: 9.14.2 -> 9.15.0
Error accessing Google Sheets API: Error: error:1E08010C:DECODER routines::unsupported
기존에 잘 쓰던 방식이 지난주쯤을 기점으로 작동하지 않았다.
지금으로부터 5주 전인 11월 22일에, google-auth-library의 최신 버전인 9.15.0 버전으로 업그레이드했는데 (11월 1일에 릴리즈되었다: https://github.com/googleapis/google-auth-library-nodejs/releases/tag/v9.15.0)
보니까 인증 방식 관련 정보가 바뀐 것 같아서, 다시 재정비를 해주었다.
기존 코드에서 인증 부분만 변경했다.
기존 코드
const { google } = require('googleapis');
require('dotenv').config();
// 인증 정보
const client = new google.auth.JWT(
process.env.GOOGLE_CLIENT_EMAIL,
null,
process.env.GOOGLE_PRIVATE_KEY,
['https://www.googleapis.com/auth/spreadsheets'] // Google Sheets API 권한
);
바꾼 코드
const docs = require('@googleapis/docs');
const auth = new docs.auth.GoogleAuth({
keyFile: './src/locale/authFile.json',
scopes: ['https://www.googleapis.com/auth/spreadsheets'], // Google Sheets API 권한
});
const googleSheets = google.sheets({ version: 'v4', auth: auth });
기존 코드에서 googleapis 라이브러리를 쓰던 것을 @googleapis/docs로 변경했다. (인증 서브모듈만 필요해서)
JWT는 여기저기서 찾은 정보를 억지로 끼워맞춰서 돌아가고 있었는데,
문서에서 앞부분에 확실히 있는 GoogleAuth를 사용했다.
기존처럼 JWT를 사용하고 싶다면 공식문서(https://www.npmjs.com/package/google-auth-library)의 JSON Web Tokens 부분을 참고하자.
전반적으로 roro패턴으로 바뀐 듯 하다.
'[Frontend] > React, TS, node.js' 카테고리의 다른 글
[node.js] Google Spreadsheet API 사용기 (3) | 2024.10.25 |
---|---|
[React & Typescript] i18n 적용기 (0) | 2024.10.20 |