ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [android] Gradle로 카카오 SDK, 카카오 링크 사용하기
    프로그래밍/Android 2015.12.16 09:00

    앱 등록

    우선 카카오 SDK를 사용하기 위해서 KakaoDevelopers에 개발자 등록이 되어 있어야합니다.

    개발자 등록을 하신 후 '내 애플리케이션 > 앱 만들기'로 이동하여 앱 이름을 지정하고 생성합니다.

    왼편 메뉴에서 생성된 앱을 선택하고 '설정 > 일반'으로 이동해서 플랫폼 추가 버튼을 클릭하여 Android 플랫폼을 추가한 후 패키지명, 마켓URL(자동 생성)을 입력합니다.

    참고로 키해시는 카카오 로그인을 사용하지 않는다면 지금 당장은 등록할 필요가 없습니다. 

    카카오 링크는 로그인을 필요로 하지 않습니다.


    Gradle 환경설정

    Project build.grade

    allprojects {
        repositories {
            jcenter()
            maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
        }
    }
    

    grade.properties

    KAKAO_SDK_GROUP=com.kakao.sdk
    KAKAO_SDK_VERSION=1.1.4
    

    Module build.grade

    compile group: project.KAKAO_SDK_GROUP, name: 'kakaolink', version: project.KAKAO_SDK_VERSION
    


    관련 키 등록

    kaka_string.xml 생성

    <!?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!-- 앱 등록시 받은 네이티브 앱 키 -->
        <string name="kaka_app_key">CCCCCCCCCCCCCCCCCCCCCCCCCCCC</string> 
        <!-- "kakao" + 네이티브앱키 -->
        <string name="kakao_sheme">kakaoCCCCCCCCCCCCCCCCCCCCCCCCCCCC</string> 
        <!-- host는 "kakaolink"로 고정된 값을 사용 -->
        <string name="kakaolink_host">kakaolink</string> 
    </resources>
    


    AndroidManifest.xml 수정

    카카오 링크 기능을 사용할 액티비티의 <intent-filter>에 아래 내용 추가

    <data android:scheme="@string/kakao_sheme" android:host="@string/kakaolink_host" />
    

    <application> 내부에 아래 내용 추가

    <meta-data android:name="com.kakao.sdk.AppKey"  android:value="@string/kakao_app_key" />


    카카오 링크 전체 소스

    fragment에서 간단하게 버튼 클릭시 링크를 보내도록 작성했습니다.

    이렇게 작성을 하신 후 실행을 한 뒤 버튼을 클릭하면 카카오톡 친구 목록이 뜨고, 거기서 메세지를 보낼 친구를 선택하고 확인 버튼을 누르면 설정된 메세지 "TEST TEXT"가 "GO WEBSITE"버튼과 함께 전송됩니다. 카카오 링크는 해당 폰에 카카오톡이 설치가 되어 있어야지만 이용 가능합니다.

    기타 자세한 내용은 개발가이드를 참고하시면 됩니다.

    package com.example.fragment;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    
    import com.example.R;
    import com.kakao.kakaolink.KakaoLink;
    import com.kakao.kakaolink.KakaoTalkLinkMessageBuilder;
    import com.kakao.util.KakaoParameterException;
    
    public class HomeFragment extends Fragment {
        private static final String TAG = HomeFragment.class.getSimpleName();
    
        View view;
    
        Button btnKakaoInvite;
    
        private KakaoLink kakaoLink;
        private KakaoTalkLinkMessageBuilder kakaoTalkLinkMessageBuilder;
    
        private final String imageSrc = "http://developers.kakao.com/images.jpg";
        private final String siteUrl = "http://developers.kakao.com";
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.fragment_home, container, false);
    
            btnKakaoInvite = (Button) view.findViewById(R.id.btn_kakao_invite);
            btnKakaoInvite.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        kakaoLink = KakaoLink.getKakaoLink(AppController.getGlobalApplicationContext());
                        kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
                        kakaoTalkLinkMessageBuilder.addText("TEST TEXT");
                        kakaoTalkLinkMessageBuilder.addImage(imageSrc, 300, 200);
                        kakaoTalkLinkMessageBuilder.addWebButton("GO WEBSITE", siteUrl);
                        kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(), getActivity());
                    } catch (KakaoParameterException e) {
                        Log.d(TAG, e.getMessage());
                    }
                }
            });
    
            return view;
        }
    }
    


    댓글 0

Designed by Tistory.