SDK → kakao_js_sdk/2.8.1/kakao.min.js
안녕하세요.
JavaScript SDK의 Kakao.Share.sendDefault()와 카카오톡 공유 웹훅을 이용하여 사용자의 실제 공유 성공 여부를 확인하는 기능을 구현하고 있습니다.
현재 아래와 같은 방식으로 구성하고 있습니다.
- 공유 요청 시 서버에서 공유 요청 건을 생성하고 고유한
shareReqId를 발급 Kakao.Share.sendDefault()호출 시serverCallbackArgs에shareReqId를 전달- 카카오톡 공유가 정상적으로 완료되면 웹훅을 통해 서버 DB의 해당 요청 건을 성공 상태로 변경하고
CHAT_TYPE저장 - 클라이언트에서 별도의 결과 조회 API를 호출하여 웹훅 수신 여부와
CHAT_TYPE을 확인
여기서 4번의 결과 조회 API를 어느 시점부터 호출하는 것이 일반적인 구현 방식인지 궁금합니다.
Kakao.Share.sendDefault() 호출 직후부터 1초 간격으로 30~60초 정도 폴링하는 방법을 고려했으나, 사용자마다 카카오톡에서 채팅방을 선택하고 실제 공유를 완료하기까지 걸리는 시간이 달라 적절한 타임아웃 시간을 정하기 어렵습니다.
그래서 현재는 카카오톡 공유 화면으로 이동한 후 사용자가 다시 기존 웹/웹뷰 화면으로 복귀한 시점을 감지하고, 복귀한 시점부터 결과 조회 API 폴링을 시작하는 방식을 검토하고 있습니다.
다만 웹 브라우저뿐 아니라 WebView 환경도 고려해야 해서 visibilitychange, focus 등의 이벤트만으로 화면 복귀 시점을 안정적으로 판단할 수 있을지도 고민되는 상황입니다.
궁금한 점은 다음과 같습니다.
Kakao.Share.sendDefault()+ 공유 웹훅을 사용하는 경우, 클라이언트에서 실제 공유 성공 여부를 확인하는 일반적이거나 권장되는 구현 방식이 있는지 궁금합니다.- 공유 호출 직후 일정 시간 동안 폴링하는 방식과, 사용자가 카카오톡에서 기존 화면으로 복귀한 후 폴링을 시작하는 방식 중 권장되는 방식이 있을까요?
- JavaScript SDK에서 카카오톡 공유 완료 또는 취소 후 기존 화면으로 복귀했다는 것을 확인할 수 있는 별도의 이벤트나 콜백을 제공하는지 궁금합니다.
- WebView 환경까지 고려할 경우 공유 완료 여부를 확인하기 위해 권장되는 처리 방식이 따로 있는지도 궁금합니다.
- 최종적으로 웹훅 수신 여부와
CHAT_TYPE을 클라이언트에서 확인해야 하는 경우, 별도의 결과 조회 API를 폴링하는 것 외에 카카오에서 권장하는 방식이 있는지도 궁금합니다.
공유 성공 여부를 웹훅으로 판단해야 한다는 점은 이해하고 있으며, 웹훅 결과를 클라이언트 화면에 반영해야 할 때 일반적으로 어떤 흐름으로 구현하는지가 가장 궁금합니다.
감사합니다.