채택완료

게시물 카카오톡 링크 공유

2026-03-10 (화) 11:59:32 336
게시물을 카카오톡으로 링크 공유하는 방법이 있나요?
카카오톡 key는 받았는데...이걸로 되나요?
카톡 로그인만 가능한건가요?
|

답변 1개

채택된 답변
+20 포인트
1. </head> 바로 앞에 추가 (SDK 로드)


2. 공유 버튼을 넣고 싶은 위치에 추가
Copy
<!-- 카카오톡 공유 버튼 -->
<button type="button" onclick="shareKakao()" style="display:inline-flex;align-items:center;gap:6px;padding:9px 18px;background:#FEE500;color:#3A1D1D;font-weight:700;font-size:0.88rem;border:none;border-radius:6px;cursor:pointer;">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="#3A1D1D"><path d="M12 3C6.477 3 2 6.477 2 10.8c0 2.742 1.618 5.153 4.073 6.627L5.1 21l5.19-2.724A11.7 11.7 0 0 0 12 18.6c5.523 0 10-3.477 10-7.8S17.523 3 12 3z"/></svg>
    카카오톡 공유
</button>


3. </body> 바로 앞에 추가
Copy
<script>
(function(){
    if(typeof Kakao==='undefined') return;
    if(!Kakao.isInitialized()) Kakao.init('여기에_JavaScript_키_입력'); // ← 수정
})();

function shareKakao(){
    if(typeof Kakao==='undefined'||!Kakao.isInitialized()){
        alert('카카오 SDK 오류: JavaScript 키를 확인하세요.'); return;
    }

    // OG 이미지: 본문 첫 번째 이미지 추출, 없으면 기본 이미지
    <?php
    $og_img = G5_URL.'/img/og_default.jpg';
    preg_match('/<img[^>]+src=["\']([^"\']+)["\'][^>]*>/i', $view['wr_content'], $m);
    if(!empty($m[1])){
        $og_img = (strpos($m[1],'http')===0) ? $m[1] : G5_URL.'/'.ltrim($m[1],'/');
    }
    $share_url  = G5_BBS_URL.'/view.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
    $share_title= strip_tags($view['wr_subject']);
    $share_desc = mb_substr(preg_replace('/\s+/',' ',strip_tags($view['wr_content'])),0,100,'UTF-8');
    ?>

    Kakao.Share.sendDefault({
        objectType:'feed',
        content:{
            title      : <?php echo json_encode($share_title, JSON_UNESCAPED_UNICODE); ?>,
            description: <?php echo json_encode($share_desc,  JSON_UNESCAPED_UNICODE); ?>,
            imageUrl   : <?php echo json_encode($og_img); ?>,
            link:{ mobileWebUrl:<?php echo json_encode($share_url); ?>, webUrl:<?php echo json_encode($share_url); ?> }
        },
        buttons:[{ title:'게시글 보기', link:{ mobileWebUrl:<?php echo json_encode($share_url); ?>, webUrl:<?php echo json_encode($share_url); ?> } }]
    });
}
</script>

카카오 콘솔에서 운영 도메인 반드시 등록

답변을 작성하려면 로그인이 필요합니다.