작성
·
116
0
를 쓰고 Ai인턴에게 답을 받았지만 도움이 되지않습니다.
어떤 글을 참고하라고 하는데 그것을 봐서는 모르겠고 직관적으로 어떻게 수정을 해야하는지 알려주었으면 좋겠습니다.
써주신 글로 알아먹을 수 있다면 좋겠지만 마음도 다급하고 모르겠습니다. ㅠㅠ
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을 위치를 끌어다 넣어도 그렇습니다. 가르쳐줘서 고맙습니다. 근데 이렇게 문제가 생겨서 이 구간을 벗어나고 싶습니다 ㅠㅠ
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
이수경님, 문제 해결에 도움이 되고자 구체적인 내용을 알려드릴게요.
문제의 원인은 Dialogflow API를 사용하기 위한 Google 인증 정보 중 client_email
필드가 누락되었기 때문입니다. Google Cloud에서 제공하는 서비스 계정 키 파일(JSON 파일)에는 client_email
과 private_key
같은 필수 정보가 포함되어야 합니다. 이 장애의 핵심은 서비스 계정 키 파일의 내용을 올바르게 프로젝트에 적용하지 못했다는 데 있습니다.
해결 방안은 다음과 같습니다:
client_email
과 private_key
등 필수 정보가 있는지 확인합니다.이미지에서 보여주신 config/dev.js
파일에 googleClientEmail
및 googlePrivateKey
값이 빈 문자열로 설정되어 있습니다. 여기에 실제 Google 서비스 계정 키에서 client_email
값을 googleClientEmail
에, private_key
값을 googlePrivateKey
에 복사하여 붙여넣어 주세요. 예를 들면 다음과 같이 됩니다:
module.exports = {
googleProjectID: 'your-google-project-id',
dialogFlowSessionID: 'your-dialogflow-session-id',
dialogFlowSessionLanguageCode: 'your-dialogflow-language-code',
googleClientEmail: 'your-service-account-email@your-project-id.iam.gserviceaccount.com',
googlePrivateKey: '-----BEGIN PRIVATE KEY-----\n(your private key here)\n-----END PRIVATE KEY-----\n',
mongoURI: 'your-mongodb-uri'
};
또한, 환경 변수로 관리하는 경우 .env
파일이나 환경 설정에서 해당 값을 올바르게 설정했는지 확인해 주세요.
올바른 서비스 계정 키 정보로 설정한 뒤, 다시 HTTP 요청을 시도해 보세요. 이 방법으로 문제가 해결되어야 합니다. 만약 여전히 문제가 발생한다면, 서비스 계정 키 파일의 경로를 코드에서 정확히 참조하고 있는지, 그리고 JSON 파일의 형식이 올바른지 다시 한 번 확인해 보시기 바랍니다.
추가 질문이 있으시면 언제든지 문의해 주세요.