인프런 커뮤니티 질문&답변

이수경님의 프로필 이미지

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기

챗봇 어플리케이션 만들기#3 구조 설명 & textQuery Route 만들기

질문있어요

24.08.20 21:21 작성

·

33

0

앞에 질문에 답변을 받았지만 링크로 참조하라는 답변이었는데 저는 그걸로는 해결을 할 수 없었습니다. 혹시 괜찮으시면 직관적인 해결법을 알려주실 수 없나요?

image.pngimage.png

send를 누르면 터미널에 이렇게 뜹니다.

 

Server Running at 5000
C:\project\vswork\chatbot-app-master\node_modules\google-gax\node_modules\google-auth-library\build\src\auth\jwtclient.js:193
            throw new Error('The incoming JSON object does not contain a client_email field');
                  ^

Error: The incoming JSON object does not contain a client_email field
    at JWT.fromJSON (C:\project\vswork\chatbot-app-master\node_modules\google-gax\node_modules\google-auth-library\build\src\auth\jwtclient.js:193:19)
    at GoogleAuth._cacheClientFromJSON (C:\project\vswork\chatbot-app-master\node_modules\google-gax\node_modules\google-auth-library\build\src\auth\googleauth.js:313:16)
    at ReadStream.<anonymous> (C:\project\vswork\chatbot-app-master\node_modules\google-gax\node_modules\google-auth-library\build\src\auth\googleauth.js:347:36)
    at ReadStream.emit (node:events:519:28)
    at endReadableNT (node:internal/streams/readable:1696:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

Node.js v20.16.0
PS C:\project\vswork\chatbot-app-master> 

아래와 같이 값이 입력이되어있는데도말입니다. 루트파일에다가 구글 인증json을 위치를 끌어다 넣어도 그렇습니다. 가르쳐줘서 고맙습니다. 근데 이렇게 문제가 생겨서 이 구간을 벗어나고 싶습니다 ㅠㅠ

image.png

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 08. 21. 21:26

안녕하세요, 인프런 AI 인턴입니다.

이수경님의 문제는 The incoming JSON object does not contain a client_email field 오류와 관련되어 있습니다. 이 오류 메시지는 Google 인증 정보를 포함하고 있는 JSON 객체에서 client_email 필드를 찾을 수 없다는 것을 의미합니다. 대부분의 경우, 이는 Google Cloud 프로젝트와 관련된 서비스 계정 키 파일이 잘못되었거나 올바르게 로드되지 않았음을 나타냅니다.

해결 방법은 다음과 같습니다:

  1. Google Cloud Console에서 해당 서비스 계정의 키 파일을 다시 생성하십시오. 이 과정에서 JSON 키 파일을 다운로드 받게 됩니다. 해당 파일에는 client_emailprivate_key 같은 필수 필드가 포함되어 있습니다.

  2. 다운로드 받은 JSON 키 파일을 프로젝트의 적절한 위치에 저장하십시오. 저장한 후, 해당 파일의 경로를 정확히 참조하도록 프로젝트 설정을 업데이트해야 합니다.

  3. dev.js 파일 (또는 해당 설정을 관리하는 다른 환경 설정 파일)에서 서비스 계정 키 파일 경로를 올바르게 참조하고 있는지 확인하십시오. 예를 들어, Node.js에서 Google Cloud 서비스를 사용하기 위해 google-auth-library를 사용하는 경우, 다음과 같이 키 파일을 지정할 수 있습니다:

const {GoogleAuth} = require('google-auth-library');

const auth = new GoogleAuth({
  keyFilename: 'path/to/your/service-account-file.json',
  // 기타 설정...
});
  1. 위의 단계에서 문제가 해결되지 않는 경우, 환경 변수를 통해 인증 정보를 제공하는 방법을 고려할 수 있습니다. 예를 들어, GOOGLE_APPLICATION_CREDENTIALS 환경 변수에 서비스 계정 키 파일의 경로를 설정함으로써 Google SDK나 라이브러리가 해당 파일을 자동으로 찾을 수 있도록 할 수 있습니다.

이 과정을 완료한 후에는 프로젝트를 다시 실행해보십시오.

이렇게 수정 후에도 문제가 지속된다면, 프로젝트 설정이나 코드 상의 다른 문제가 있을 수 있으므로, 더 자세한 분석이 필요할 수 있습니다. 코드의 다른 부분, 특히 인증 정보를 로드하고 있는 부분을 신중하게 검토해 보시기 바랍니다.