카카오톡링크 자바스크립트 문의

테스트서버에서 새롭게 구현하려고 web4.85pro.kr 이라는 도메인을 추가했습니다.
추가한 도메인으로는 모바일에서 버튼자체가 먹히지 않는데 무슨 이유인지 모르겠네요…ㅠㅠ
스크립트 키는 기존에 사용하고있던 그대로 입니다.

<script src="//developers.kakao.com/sdk/js/kakao.min.js"></script>
<div class="social_box">
<a id="kakao-link-btn" href="javascript:;">
<img src="//dev.kakao.com/assets/img/about/logos/kakaolink/kakaolink_btn_medium.png" width=25/>
</a>
<script type='text/javascript'>
//<![CDATA[
// // 사용할 앱의 JavaScript 키를 설정해 주세요.
Kakao.init('095a5c29fbc24a04c2ad206b8d85fbe5');
// // 카카오톡 링크 버튼을 생성합니다. 처음 한번만 호출하면 됩니다.
Kakao.Link.createTalkLinkButton({
	container: '#kakao-link-btn',
	label: '85pro쇼핑몰',
	image: {
		src: 'http://web4.85pro.kr/data/goods/0/44/145895226844l0.view.jpg',
		width: '300',
		height: '200'
	},
	webButton: {
		text: '상품명입니다',
		url: 'http://web4.85pro.kr/m/?act=shop.goods_view&CM=45&GC=GD0701&oc=cate_multi_sort2&os=ASC&page=1'
	  }
	});
 //]]>
`

혹시 console 에 에러메세지 뜨지 않나요?

p.s 민감한 정보가 있어서 이미지는 삭제했습니다.

1개의 좋아요

아무런 에러메세지도 없이 그냥 먹통입니다…ㅠㅠ
이유를 모르겠네요…ㅠㅠ

혹시 아래와 같은 소스형식으로는 연결이 안될까요?
기존에 사용하고 있던 카카오스토리 연결인데 이건 작동하길래 여쭤봅니다…ㅠㅠ

kakao.link("story").send({ post : param.post, appid : param.appid, appver : "1.0", appname : param.appname, urlinfo : JSON.stringify({title:param.title, desc:param.desc, imageurl:[param.img], type:"article"}) });

우선 kakao.link("story").send 방식은 deprecated 되어서 더이상 지원하고 있지 않습니다.

해당 사이트에서 테스트해보니 console 에 에러 메세지가 출력되는 것 같네요.
에러 메세지를 바탕으로 디버깅해보니(아주 힘들었습니다ㅜ) sky.jquey.js 에서 비권장 방식으로 Array 객체를 확장하고 있습니다.
이부분에 수정이 필요할 것 같네요.

이 소스가 후이즈몰 독립형 소스인데…진짜 난감하네요…ㅠㅠ
말씀하신 sky.jquery.js 파일을 봐도 카카오톡관련된 변수도 찾지 못하겠구요

일단 Array객체를 확장하고 있다는 말씀에 짐작가는 부분을 봤는데…어떤 부분을 어떻게 수정할지
도저히 감이 안오네요…하…

아래는 짐작가는 부분의 소스 일부이구요 혹시몰라 첨부로 전체파일 올려봅니다…ㅠㅠ

// Extend Array ///////////////////////////////////////////////////////////////

	jQuery.extend(Array.prototype, {
    exists: function(value) {
        return !!(this.search(value) > -1);
    },
    search: function(value) {
        return jQuery.inArray(value, this);
    },
    filter: function(func, applyResult) {
        if (typeof func != 'boolean' || typeof func != 'function') {
            return this;
        }

        var ret = [];
        if (typeof func == 'boolean') {
            applyResult = false;
        }
        this.each(function(value, i) {
            var result = (typeof func == 'boolean') ? (!value == !func) : func(value, i);
            if (applyResult) {
                if (result !== false) ret.push(result);
            } else {
                if (result) ret.push(value);
            }
        });
    },
    each: function(func) {
        if (typeof func == 'function') {
            for (var i = 0; i < this.length; i++) {
                this[i] = func(this[i], i);
            }
        } else {
            for (var i = 0; i < this.length; i++) {
                this[i] = func;
            }
        }
        return this;
    },
    merge: function(obj) {
        return jQuery.merge(this, obj);
    },
    intersect: function(obj) {
        var ret = [];
        for (var i = 0; i < obj.length; i++) {
            if (this.exists(obj[i])) {
                ret.push(obj[i]);
            }
        }
        return ret;
    },
    diff: function(obj) {
        var ret = [];
        for (var i = 0; i < obj.length; i++) {
            if (!this.exists(obj[i])) {
                ret.push(obj[i]);
            }
        }
        return ret;
    }
});
Array.prototype.has = Array.prototype.exists;
Array.prototype.copy = jQuery.makeArray;

sky_jquery_js.txt (14.8 KB)`

JS SDK에서는 브라우져에 내장된 Array 객체를 사용하는데요 보시다시피 sky.jquey.js 에서 이 내장객체를 덮어쓰고 있습니다ㅜ
SDK내에서 배열로 작업할때 오작동이 일어나고 있는 것으로 보이고요.
덮어쓴 부분을 다시 내장객체를 참조하도록 바꿔주시면 해결이 되겠지만 그랬을 경우 사이트에 최적환된 JS에서 다른 오류가 발생할 수도 있을 것 같네요.