특정 케이스 일 때 카카오톡 링크 공유 error code: 4011

안녕하세요.
특정 케이스 일 때 카카오톡 링크 공유시 4011 에러 가 나는 현상이 확인되서 문의 드립니다.

[현상]
버전: 2.1.0
앱 ID: 844244
환경: Windows PC
브라우저: 크롬
조건: 카카오톡이 깔려있지 않은 상태

  1. 최초 공유하기 버튼 클릭 시 새창으로 카카오 로그인창 표출
  2. 해당 창을 닫고 다시 공유하기 버튼 클릭시 요청실패 화면 표출(에러코드 4011)
  3. 요청실패 팝업을 닫지 않은 상태에서, 공유하기 버튼이 있는 부모창 새로고침 한 뒤 공유하기 버튼 클릭
    3.1 열려있던 요청살패 팝업화면이 카카오 로그인창으로 이동

해당 현상이 모바일 WEB, APP 에서는 발생하지 않고 PC 에서만 발생하고 있습니다.
인증 관련된 문제로 생각되나, 정확한 원인 파악이 힘들어 문의 드립니다.

(인증키와 도메인은 정상적으로 등록되어 있고 최초 Kakao.init(“javascript key”) 호출 후 Kakao.isInitialized(); 결과값이 true 로 확인되었습니다.)

[페이지]
요청 실패 잘못된 요청으로 인증에 실패하였습니다.
공유하기를 제공한 서비스로 문의하시기 바랍니다.

ErrorCode(4011)
UUID(bed5628b-7456-45a8-a7cd-89ca63d3f203)

감사합니다.

안녕하세요.
사용하신 앱 키가 잘못된것으로 보입니다.

초기화(Kakao.init) 직전 사용하신 앱키가 어떤 값이었는지 로그를 찍어보시는게 좋을것 같아요.

앱ID를 잘못 전달해드렸네요.

앱ID는 847125 이며 Kakao.init() 할 때 정상적인 키로 셋팅하고 있는걸로 확인되었습니다.

Kakao.init 함수는 페이지 로딩시 최초 한번만 호출하는데

공유하기 버튼 누를때 마다 인증성공과 인증실패가 섞여서 나오고 있는데 인증실패시 UUID 보내드리니 확인 한번 부탁드립니다.
ErrorCode(4011)
UUID(158dce58-2ff3-4a16-97c1-1c651c8279b3)

감사합니다.

재현해 볼수 있는 URL 제공 부탁드립니다.
저희쪽 로그에는 앱키를 잘못 설정한것으로 기록되어 있습니다.

아직 오픈되지 않은 시스템이라 URL 공유가 어렵습니다.

현재 확인된 바는 Kakao.Share.sendDefault() 함수를 호출하면 kakao.min.js 에서 form을 생성해 submit 처리를 한 다음 form을 삭제하는데, 이때 디버그를 찍으면 form 에 값이 정상적으로 담긴 것을 볼 수 있고 인증이 성공되지만, 디버그를 찍지 않을 경우 인증실패 화면이 노출됩니다.

해당 부분 확인이 가능할까요?
난독화가 되어 있어 정상적인 함수명을 알 수 없지만 kakao.min.js 파일 970번째 라인 입니다.

    function cn(e, t) {
        var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "_self"
          , r = document.createElement("form");
        r.setAttribute("accept-charset", "utf-8"),
        r.setAttribute("method", "post"),
        r.setAttribute("action", e),
        r.setAttribute("target", n),
        r.setAttribute("style", "display:none"),
        He(t, (function(e, t) {
            var n = document.createElement("input");
            n.type = "hidden",
            n.name = t,
            n.value = Ge(e) ? e : JSON.stringify(e),
            r.appendChild(n)
        }
        )),
        document.body.appendChild(r),
        r.submit(),
        document.body.removeChild(r)
    }

안녕하세요.

해당 코드는 컨텐츠 길이가 너무 긴 경우 폼으로 전달해야 하기에 존재하는 코드입니다.
이 코드는 설정된 값만을 넘겨주므로 비정상 동작에 원인을 주지는 않습니다.

4011 오류의 경우 대부분 앱키가 잘못 설정되어 발생합니다.
앱키에 공백이 있거나 쿼테이션에 감싸여 있거나 등의 이유로 발생하는데요.

공유하기 호출 직전에 Kakao.cleanup()을 호출 한 뒤, 다시 앱키를 초기화 하여 테스트 부탁드립니다.
이 때 초기화 및 공유하기에 사용하신 코드를 (앱키가 노출되도록) 개인메시지로 부탁드립니다.

1개의 좋아요

안녕하세요.
답변 주신 내용대로 공유하기 버튼 클릭 이전 Kakao.cleanup()을 호출하고, 다시 Kakao.init()을 호출하는 방식으로 수정해 테스트 한 결과 간헐적으로 발생하던 인증실패 문제를 해결했습니다.

기존에 발생하던 최초 인증 성공 후 다시 공유하기 호출 시 인증실패가 발생하는 현상은 내부적으로 확인 할 예정입니다.

도움을 주셔 감사합니다.