비라코챠 (121.♡.94.168)
2024년 5월 3일 AM 09:23 · 수정됨(05. 04. 00:17)
개발 관련 문의인데 조언 해주실 앙님들이 있을지 몰라 글 올려봅니다.
자바사이트 개발중입니다.
다모앙 사이트에도 있지만 소셜 아이디로 로그인하는 기능이 있는데요
기능을 붙여보려고 개발중입니다.
카카오, 네이버는 그럭저럭 로그인은 되는 것 같은데, 구글은 계속 에러가 발생하네요 ㅠ
레퍼런스 사이트를 참고했는데 구글API 생성하고 로그인창 떠서 정보는 가져오는데
ResponseEntity<GoogleResponse> resultEntity = restTemplate.postForEntity("https://oauth2.googleapis.com/token",
googleOAuthRequestParam, GoogleResponse.class);
토큰을 받아오는 함수를 호출하면 400 Bad Request라고 에러를 뱉어냅니다 ㅠ
"error": {
"code": 400,
"message": "Invalid JSON payload received. Expected a value.\n\u003cGoogleRequest\u003e\u003cclie\n^",
"status": "INVALID_ARGUMENT"
}
googleOAuthRequestParam의 형태가 잘못되었다는 것 같은데 .. ㅠㅠ
뭐가 잘못된 걸 까요?
구글링해도 INVALID_ARGUMENT 관련 언급은 없네요 ㅠ
댓글 (11)
-
꼬꼬끼
24.05.03 · 1.♡.148.2
-
꼬꼬끼
→ 꼬끼
24.05.03 · 1.♡.148.2
query string 형태로 아규먼트를 보내고있는건지 확인해보세요 -
꼬꼬끼
→ 꼬끼
24.05.03 · 1.♡.148.2
googleOAuthRequestParam 에 Invalid JSON payload received. Expected a value.\n\u003cGoogleRequest\u003e\u003cclie\n^
이부분 디코드해보니 json 형태로 안보내고계신 것 같습니다.
엔드포인트 https://oauth2.googleapis.com/token url도 체크해보세요
제가 대강 구글링해보니 중간에 버전정보도 추가된 예시가 많아서요.
ex) https://oauth2.googleapis.com/v4/token -
비비라코챠
→ 꼬끼 작성자
24.05.03 · 121.♡.94.168
알려주신 참조사이트를보고 체크하고 있는데요
저는 postman은 쓰지 않고 talent API Tester라는 크롬확장프로그램을 쓰는데 post 해보니 token값 리턴 잘 됩니다ㅠㅠ
말씀해주신 것 처럼 googleOAuthRequestParam이 json형태가 아닌 문제로 보입니다
로그 찍어봤는데 보기엔 json형태가 맞는데 시스템이 인식을 못하는건지.. ㅠ
객체를 생성할때 json형태로 만들어줘야 한다는 언급은 참조사이트엔 없었는데 수정을해봐야 할것 같습니다. ㅠ -
꼬꼬끼
→ 비라코챠
24.05.03 · 1.♡.148.2
json형태로 보인다고 하셨는데, 파라미터를 json object로 변환을 해주셨을까요?
제가 비라코챠님이 어느정도의 개발수준을 가지고계신분인지 모르고, 작성하신 코드도 일부라ㅎㅎ... -
비비라코챠
→ 꼬끼 작성자
24.05.03 · 121.♡.94.168
아예 jsonObject 로 만들었습니다
JsonObject googleOAuthRequest = new JsonObject();
googleOAuthRequest.addProperty("client_id", GOOGLE_CLIENT_ID);
googleOAuthRequest.addProperty("client_secret", GOOGLE_CLIENT_SECRET);
googleOAuthRequest.addProperty("redirect_uri", GOOGLE_REDIRECT_URI);
googleOAuthRequest.addProperty("grant_type", "authorization_code");
googleOAuthRequest.addProperty("code", authCode);
이번엔 다른 에러네요.. ㅠㅠ
.... JsonObject (through reference chain: com.google.gson.JsonObject["asString"]) -
비비라코챠
→ 꼬끼 작성자
24.05.03 · 121.♡.94.168
jsonObject를
String json = new ObjectMapper().writeValueAsString(googleOAuthRequestParam);
로 만들어서 넘겨봤는데 에러가
.... 401 Unauthorized: [no body] 로 나오네요 ㅠㅠ -
꼬꼬끼
→ 꼬끼
24.05.03 · 1.♡.148.2
혹시 위 문제가 아니면 참고하고계신 레퍼런스 사이트나 google api dev 링크 하나 남겨주시면 오후에 시간나면 보겠습니다.
(회의중에 남긴거라 듬성듬성 봐서요ㅠㅠ...) -
비비라코챠
→ 꼬끼 작성자
24.05.03 · 121.♡.94.168
제가 참고했던 레퍼런스 사이트 입니다.
https://ecolumbus.tistory.com/169 -
비비라코챠
→ 꼬끼 작성자
24.05.03 · 121.♡.94.168
알려주신 참조 사이트가 도움이 되었습니다. 감사합니다.
역시 에러는 오타부터 확인해야 하나 봅니다. ㅠㅠ
json으로 형변환해야 했고 오타까지 있었어서 많이 헤멨네요^^;;
댓글을 작성하려면 이 필요합니다.
한번 참고해보시면 좋을 것 같습니다