카카오 링크시 createDefaultFeed 부분에서 에러가 발생합니다

2017-04-18 16:09:11.613 kakao.min.js:20 Uncaught o {name: “KakaoError”, message: “Missing required keys: container,objectType,content at Link.createDefaultFeed”}message: "Missing required keys: container,objectType,content at Link.createDefaultFeed"name: "KakaoError"proto: Error
at https://developers.kakao.com/sdk/js/kakao.min.js:20:19003
at Object.r.8…/browserProxy.js (https://developers.kakao.com/sdk/js/kakao.min.js:20:21162)
at i (https://developers.kakao.com/sdk/js/kakao.min.js:20:813)
at https://developers.kakao.com/sdk/js/kakao.min.js:20:864
at https://developers.kakao.com/sdk/js/kakao.min.js:21:5028
at Object.r.17…/api.js (https://developers.kakao.com/sdk/js/kakao.min.js:21:5653)
at i (https://developers.kakao.com/sdk/js/kakao.min.js:20:813)
at t (https://developers.kakao.com/sdk/js/kakao.min.js:20:980)
at https://developers.kakao.com/sdk/js/kakao.min.js:20:997
at https://developers.kakao.com/sdk/js/kakao.min.js:20:531
t.exports.t.processRules @ kakao.min.js:20
t.exports.m.createDefault.m.createDefaultButton @ kakao.min.js:20

스크립트는 아래와 같습니다.

<script type='text/javascript'>
    <![CDATA[

    Kakao.init('key');

    Kakao.Link.createDefaultButton({
        container: '#kakao-link-btn',
        objectType: 'feed',
        content: {
            title: '{data_goods.good_name}',
            imageUrl: '{data_goods.good_file_view_url}',
            link: {
                mobileWebUrl: "<?=$url1?>"
            }
        },
        buttons: [{
            title: '웹으로 이동',
            link: {
                mobileWebUrl: "<?=$url1?>"
            }
        }],
        installTalk : true
    });
    ]]>
</script>

위 로그로 보았을 때 필수 값인 container, objectType, content가 없는 것으로 보이는데요.

Kakao.Link.createDefaultButton 함수를 실행 시 필수 값을 잘 넘겨주고 있는지 확인 부탁드립니다.

테스트 가능한 페이지도 알려주시면 원인 파악에 도움이 될 것같아요.

http://test.tomntomsmall.com/m/?act=shop.goods_view&CM=768&GC=GD01

이 페이지입니다.

확인 부탁드립니다.

DOM이 로딩되지 않은 상태에서 스크립트가 실행되는 문제인 것으로 판단되는데요.

순서를 아래와 같이 바꿔보시겠어요?

<a id="kakao-link-btn" href="javascript:;">
    <img src="//dev.kakao.com/assets/img/about/logos/kakaolink/kakaolink_btn_small.png"/>
</a>
<script type='text/javascript'>


    Kakao.init('생략');

    Kakao.Link.createDefaultButton({
        container: '#kakao-link-btn',
        objectType: 'feed',
        content: {
            title: '{data_goods.good_name}',
            imageUrl: '{data_goods.good_file_view_url}',
            link: {
                mobileWebUrl: "http://test.tomntomsmall.com/m/?act=shop.goods_view&CM=768&GC=GD01"
            }
        },
        buttons: [{
            title: '웹으로 이동',
            link: {
                mobileWebUrl: "http://test.tomntomsmall.com/m/?act=shop.goods_view&CM=768&GC=GD01"
            }
        }],
        installTalk : true
    });


</script>

변경해봤으나 동일한 오류가 발생합니다.

문의 주신 페이지의 코드를 보니 DOM을 조작하는 jQuery관련 코드들이 있어서 정확한 원인 파악이 어려운 점 양해 바랍니다.

아래 방법으로 확인 부탁드립니다.
Kakao.Link.createDefaultButton → Kakao.Link.sendDefault 변경
-가이드: https://dev.kakao.com/docs/js#카카오링크-피드-템플릿-보내기 의 [동적으로 카카오톡링크 전송하기]
-레퍼런스: https://dev.kakao.com/docs/js-reference#kakao_link_senddefault

  • Kakao.Link.sendDefault 함수는 container를 받지 않으며 클릭 이벤트 발생 시에 실행 시켜주면 됩니다.