버전 업그레이드: 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

+ Recent posts