티스토리 뷰

728x90
반응형

 

 

 

이번에 카카오링크 안드로이드 버전을 적용하면서 초보 개발자분들이 적용하기에는 설명이 부족한 부분이 많다는 것을 느꼈습니다.

 

카카오 개발가이드를 따라하다가 막히는 부분이 많다면 아래 내용대로 따라오시면 성공하실 수 있을겁니다!!

 


 

https://developers.kakao.com/ 카카오 디벨로퍼 사이트에 들어가서 적당히 가입과 이름 설정을 해주시고

 

앱 만들기 버튼을 눌러 앱을 만들어줍니다.

 

< 앱 만들기>

앱이 만들어지고 키가 생성되었습니다. 우리는 여기서 네이트브 앱 키만 사용하면 됩니다.

< 개발환경별 키 >

앱 정보 설정 혹은 설정에 일반을 클릭해줍니다.

플랫폼 추가 버튼을 누르고 Android를 선택해 줍니다.

패키지명에 카카오링크를 적용할 안드로이드 프로젝트 패키지명을 입력해줍니다.

패키지명 입력 시 마켓 URL은 자동입력됩니다.

< 플랫폼 추가 >

안드로이드 패키지명등록까지 완료된 후 이제 키 해시를 등록해줘야합니다.

키 해시 등록 전에 먼저 안드로이드에 카카오링크를 등록하겠습니다.

키 해시 부분은 글 제일 하단을 참고해주세요!!


 

미리 만들어논 안드로이드 프로젝트에서 매니페스트에 해당 코드를 추가해줍니다.

<intent-filter>
	<action android:name="android.intent.action.VIEW" />
	<category android:name="android.intent.category.DEFAULT" />
	<category android:name="android.intent.category.BROWSABLE" />

	<data android:scheme="@string/kakao_scheme"
	android:host="@string/kakaolink_host" />
</intent-filter>


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

 

res -> values에 kakao_strings.xml을 만들어주고 해당 코드를 작성해줍니다.

kakao_scheme은 kakao 문자열에 앱키의 문자열 값을 붙인 형식입니다.

예) 앱키가 AAAAAAAAAAAAAAAAAAAAAA라면 kakaoAAAAAAAAAAAAAAAAAAAAAA가 커스텀 스킴이 됩니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<!-- 카카오 디벨로퍼 앱 만들기에서 네이티브 키를 입력해주시면 됩니다. -->
    <string name="kakao_app_key">6d720b05d278171d48b88a8c60915fe1</string>
    <string name="kakao_scheme">kakao6d720b05d278171d48b88a8c60915fe1</string>
    <string name="kakaolink_host">kakaolink</string>
</resources>

Gradle Scripts의 build.gradle의 프로젝트 부분에 해당 코드를 삽입해줍니다.

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

 

Gradle Scripts의 build.gradle의 모듈 부분에 해당 코드를 삽입해줍니다.

implementation group: 'com.kakao.sdk', name: 'kakaolink', version: project.KAKAO_SDK_VERSION

위에 코드를 추가하면 KAKAO_SDK_VERSION 부분에서 오류가 날겁니다.

Gradle Scripts의 gradle.properties 제일 밑 부분에 해당 텍스트를 삽입해주세요.

KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.27.0

SDK버전의 경우 밑의 링크에 들어가 최신 버전으로 사용해주시면 됩니다.

https://developers.kakao.com/docs/sdk

< SDK 버젼 확인 >

 

카카오 링크를 추가할 엑티비에 해당 메소드를 추가시킵니다.

템플릿을 해당 링크에서 확인할 수 있으며 가장 기본이 되는 피드 템플릿 소스를 가져왔습니다.

https://developers.kakao.com/docs/android/kakaotalk-link#피드-템플릿-보내기

 

Kakao Developers_

더 나은 세상을 꿈꾸고 그것을 현실로 만드는 이를 위하여 카카오에서 앱 개발 플랫폼 서비스를 시작합니다.

developers.kakao.com

 

자바 코드

public void kakaolink() {
  FeedTemplate params = FeedTemplate
          .newBuilder(ContentObject.newBuilder("디저트 사진",
          "http://mud-kage.kakao.co.kr/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg",
          LinkObject.newBuilder().setWebUrl("https://developers.kakao.com")
                  .setMobileWebUrl("https://developers.kakao.com").build())
          .setDescrption("아메리카노, 빵, 케익")
          .build())
          .setSocial(SocialObject.newBuilder().setLikeCount(10).setCommentCount(20)
                  .setSharedCount(30).setViewCount(40).build())
          .addButton(new ButtonObject("웹에서 보기", LinkObject.newBuilder().setWebUrl("'https://developers.kakao.com").setMobileWebUrl("'https://developers.kakao.com").build()))
          .addButton(new ButtonObject("앱에서 보기", LinkObject.newBuilder()
                  .setWebUrl("'https://developers.kakao.com")
                  .setMobileWebUrl("'https://developers.kakao.com")
                  .setAndroidExecutionParams("key1=value1")
                  .setIosExecutionParams("key1=value1")
                  .build()))
          .build();

  Map<String, String> serverCallbackArgs = new HashMap<String, String>();
  serverCallbackArgs.put("user_id", "${current_user_id}");
  serverCallbackArgs.put("product_id", "${shared_product_id}");

  KakaoLinkService.getInstance().sendDefault(this, params, serverCallbackArgs, new ResponseCallback<KakaoLinkResponse>() {
      @Override
      public void onFailure(ErrorResult errorResult) {
          Logger.e(errorResult.toString());
      }

      @Override
      public void onSuccess(KakaoLinkResponse result) {
          // 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
      }
  });
}

코틀린 코드

fun kakaoLink() {
        val params = FeedTemplate
            .newBuilder(
                ContentObject.newBuilder(
                    "디저트 사진",
                    "http://mud-kage.kakao.co.kr/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg",
                    LinkObject.newBuilder().setWebUrl("https://developers.kakao.com")
                        .setMobileWebUrl("https://developers.kakao.com").build()
                )
                    .setDescrption("아메리카노, 빵, 케익")
                    .build()
            )
            .setSocial(
                SocialObject.newBuilder().setLikeCount(10).setCommentCount(20)
                    .setSharedCount(30).setViewCount(40).build()
            )
            .addButton(
                ButtonObject(
                    "웹에서 보기",
                    LinkObject.newBuilder().setWebUrl("https://developers.kakao.com").setMobileWebUrl(
                        "https://developers.kakao.com"
                    ).build()
                )
            )
            .addButton(
                ButtonObject(
                    "앱에서 보기", LinkObject.newBuilder()
                        .setWebUrl("'https://developers.kakao.com")
                        .setMobileWebUrl("https://developers.kakao.com")
                        .setAndroidExecutionParams("key1=value1")
                        .setIosExecutionParams("key1=value1")
                        .build()
                )
            )
            .build()

        val serverCallbackArgs: MutableMap<String, String> =
            HashMap()
        serverCallbackArgs["user_id"] = "\${current_user_id}"
        serverCallbackArgs["product_id"] = "\${shared_product_id}"

        KakaoLinkService.getInstance().sendDefault(
            this,
            params,
            serverCallbackArgs,
            object : ResponseCallback<KakaoLinkResponse?>() {
                override fun onFailure(errorResult: ErrorResult) {
                    Logger.e(errorResult.toString())
                }

                override fun onSuccess(result: KakaoLinkResponse?) { // 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
                }
            })
    }

메소드를 추가한 뒤 테스트 버튼을 하나 만드셔서 해당 메소드를 호출하시면 됩니다.

여기까지 따라오셨으면 기본 구성은 모두 끝이 났습니다.

이제 키 해시를 등록해주면 되는데 키 해시는 다음 글을 참고해주세요!!

 

https://thisisspear.tistory.com/53

 

안드로이드 카카오 API 디버그 키, 릴리즈 키

카카오 API를 사용하기 위해서는 키 해시를 등록해줘야되는데 디버그 모드에서는 디버그 키해시, 릴리즈 모드에서는 릴리즈 키해시를 각각 따로 등록을 해주어야됩니다. 처음 접하시는 분들은 이게 뭔소린지... 하..

thisisspear.tistory.com

 

 

 

 

728x90
반응형
댓글

"이 블로그의 모든 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday