카카오 공유하기 기능 https환경에서 작동안함 (Kakao.init: App key must be provided)

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.


SDK 버전 2.7.4, 디벨로퍼스 앱ID 1196262 입니다.
로컬 develop 환경에서는 카카오톡 공유하기 기능이 정상적으로 동작하고, 따로 로컬에서 빌드한 파일에서도 카카오톡 공유하기 기능이 동작합니다. 그런데 https환경에 배포하여 해당 기능을 실행하니, 아래 이미지와 같이 Kakao.init: App key must be provided 오류가발생합니다.
image

window.Kakao.init 실행 직전에 console.log로 찍어본 결과, 앱 키의 값이 정상적으로 출력됨 및 string타입으로 정상적으로 나타나는 것을 확인했습니다.
다음은 SDK를 불러오는 코드입니다.
const KAKAO_SHARE_KEY = process.env.REACT_APP_WWWM_FE_KAKAO_API_KEY_SHARE;

useEffect(() => {
const script = document.createElement(“script”);
script.src = “https://developers.kakao.com/sdk/js/kakao.js”; // 카카오톡 SDK
script.async = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script); // return으로 제거
};
}, );

다음은 카카오톡 공유하기 함수 전문입니다.

//카카오톡 공유
const KakaoShare = async() => {

if (window.Kakao === undefined) {
return;
}
// console.log("카카오 앱키: ", KAKAO_SHARE_KEY);
// console.log(typeof KAKAO_SHARE_KEY);

window.Kakao.init(KAKAO_SHARE_KEY);

// if (!window.Kakao.isInitialized()) {
// window.Kakao.init(KAKAO_SHARE_KEY);
// }

window.Kakao.Link.sendDefault({
objectType: ‘feed’,
content: {
title: ‘언제볼까?’,
description: ‘약속 잡기 힘든 시람들이 만든, 더 많은 만남을 위한 서비스’,
imageUrl: ‘https://ifh.cc/g/ccKapj.jpg’,
link: {
mobileWebUrl: shareString,
webUrl: shareString,
},
},
buttons: [
{
title: ‘참여하기’,
link: {
mobileWebUrl: shareString,
webUrl: shareString,
},
},
],
});

앱키를 init 못했다는 에러로 배포환경의 도메인을 디벨로퍼스 웹 도메인 설정에 등록 하셨는지 확인해주시고

재현가능한 URL 기재하시면 어떤상황인지 함께 살펴보겠습니다.

1개의 좋아요

넵 현재 확인한 결과 웹 도메인 설정에 등록된 상태고, 저희 서비스가 단계별로 동작하기에 아래 step에 맞게 확인해주시면 될 거같습니다!!

  1. https://when-will-we-meet.site/invite?appointmentId=67a98761253cea0de15ef6b4 접속
  2. ID, PW에 각각 a, 1 입력 (다른 임의의 ID, PW로 입력하셔도 무방합니다)
  3. ‘내 참여시간 저장’ 버튼 클릭
  4. 우측 최상단의 공유 버튼 클릭 및 ‘카카오톡으로 공유하기’ 버튼 클릭

Kakao.init: App key must be provided

제공해 주신 URL에서도 동일한 오류가 발생합니다.
이 오류는 JS SDK 코드에 유효하지 않은 문자열 전달 시, 발생하는 오류 입니다.

현재 undefined 된 변수가 전달되여 초기화 시도하고 있습니다.
운영 빌드 시, 아래 변수가 전달되지 않는 것으로 보입니다 참고 부탁드립니다.
const KAKAO_SHARE_KEY = process.env.REACT_APP_WWWM_FE_KAKAO_API_KEY_SHARE;

1개의 좋아요

알고보니, Github Actions의 Secrect에 해당 앱 키를 넣어두지않아 배포될 때 적용이 되지 않던 거였습니다!!
'undefined 된 변수가 전달되고 있다’라고 조언해주신 덕에 힌트를 얻어, 이렇게 잘 해결할 수 있었습니다. 정말 감사합니다!