-
[Android] KakaoLink 공유하기 개발 환경 세팅 & 활용하기Android 2024. 8. 11. 17:55
1. 모듈 세팅
우선 모듈 세팅부터 해주어야 한다. 아래 블로그에 정리가 잘 되어있지만, 내가 다시 정리해보려고 한다!
https://nezhitsya.tistory.com/21
[AOS] Android KakaoLink 카카오톡 공유하기 1 - 초기 설정
🐱 카카오 공유하기 기능 개발 요청 들어왔네요. 개발환경 세팅해주세요! 넵 🐶 🐱 카카오톡 공유와 카카오톡 메시지 두 가지가 있는데 공유로 부탁드려요! (무슨 차이지... 일단...) 넵..! 🐶
nezhitsya.tistory.com
블로그를 봐도 오류가 생길 수 있다. 버전마다 다르기 때문에 그럴땐 아래처럼 공식문서를 참고하는게 좋다!
https://developers.kakao.com/docs/latest/ko/android/getting-started
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
여기로가면 기본 모듈 세팅에 대해 자세히 정리되어 있다.
settings.gradle.kts
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven("https://jitpack.io") maven("https://devrepo.kakao.com/nexus/repository/kakaomap-releases/") maven { url = java.net.URI("https://devrepo.kakao.com/nexus/content/groups/public/") } } }build.gradle.kts
// kakao link implementation ("com.kakao.sdk:v2-share:2.20.3")AndroidManifest.xml 인터넷 사용권한 설정
<uses-permission android:name="android.permission.INTERNET" />디버그 / 릴리즈키
디버그키와 릴리즈키가 필요한데,
(1) 디버그키 확인 (개발자마다 다름) 아래 사진처럼 Build Type을 release로 바꿔두고,


해당 로그를 찍어주면 가져올 수 있다.
override fun onCreate() { super.onCreate() Log.d("debug hash key", Utility.getKeyHash(this)) }
(2) 릴리즈 키 해시 발급은 아래와 같다.
https://nezhitsya.tistory.com/20
[AOS] Android Release key hash 발급하기
🤖 카카오 / 네이버 / 구글 API 사용할건가요? 예.... 🐶 🤖 해시 키 주세요. 예...? 🐶 🤖 주세요. Java KeyStore (JKS) SSL 암호화를 위해 쓰이는 key들을 모아놓은 파일로 형식은 .jks 또는 .keystore를 사
nezhitsya.tistory.com
다 발급받고 나면 해당 키를
2. 플랫폼 등록
일단 플랫폼 등록부터 해줘야한다. 과거의 내가 카카오 지도앱 쓰면서 잘 적어놨더라...iOS할때 ㅎㅎ
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
일단 해당 사이트로 들어가서 아래 부분에 애플리케이션 추가하기를 클릭하면 아래처럼 화면이 나온다.

본인 애플이케이션에 맞게 입력하면 아래처럼 추가가 되고,

눌러서 한번 들어가보자!

플랫폼을 등록할 수 있는 버튼을 클릭하고!

플랫폼을 등록해서 활용하면 된다!
3. 활용하기
이제 활용해보자!
https://developers.kakao.com/docs/latest/ko/message/message-template#component
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
메시지 템플릿 구조 확인해서 총 5가지 종류 중에 본인한테 맞는것을 선택해주면 된다.
카카오 링크 공유하기
카카오링크는 사용자가 카톡 메시지로 친구에게 메시지에 담긴 정보를 공유하는 기능입니다. 사용자는 동적링크를 이용하여 해당 웹이나 앱으로 친구를 초대할수 있습니다.기존의 Android Intent
velog.io
나는 간단하게 사진 한장, 그 사진이랑 연결되는 게시글로만 연결되면 되는거라, 우선 Manifest에 연결할 화면을 설정해둔다. 아래 블로그를 참고하면서 했다! 히히
https://nezhitsya.tistory.com/23?category=967293
[AOS] Android KakaoLink 카카오톡 공유하기 2 - Kakao Link 설정
🐱 개발환경 준비되었으면 개발 들어가볼까요? 네! (카카오톡 문서만 있으면 어디든 두렵지않아...) 🐶 카카오 링크 구현 이전, 초기 설정이 필요하다. 초기 설정 [AOS] Android KakaoLink 카카오톡 공
nezhitsya.tistory.com
<activity android:name=".src.main.MainActivity" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- "kakao${YOUR_NATIVE_APP_KEY}://kakaolink" 형식의 앱 실행 스킴을 설정하는데 사용 --> <data android:scheme="@string/kakao_scheme" android:host="@string/kakaolink_host" /> </intent-filter> </activity>근데 이러면 앱이 켜져있을때만 이동이 가능하므로 나는 SplashActivitiy에도 추가해줬다.
<activity android:name=".src.splash.SplashActivity" android:exported="true" android:screenOrientation="portrait" android:theme="@style/Theme.Fliwith.Splash"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- "kakao${YOUR_NATIVE_APP_KEY}://kakaolink" 형식의 앱 실행 스킴을 설정하는데 사용 --> <data android:scheme="@string/kakao_scheme" android:host="@string/kakaolink_host" /> </intent-filter> </activity>그리고 공유 링크 생성은 공식 문서를 참고하면 바로 연결된다!
https://developers.kakao.com/docs/latest/ko/message/android-link
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
private fun setShareLink() { // 카카오 공유 링크 생성 binding.reviewDetailShareIcon.setOnClickListener { val defaultFeed = FeedTemplate( content = Content( title = viewModel.reviewSpotName.value.toString(), description = viewModel.reviewWriteContent.value.toString(), imageUrl = viewModel.reviewImageUrls.value?.get(0).toString(), link = Link( webUrl = "https://developers.kakao.com", mobileWebUrl = "https://developers.kakao.com", androidExecutionParams = mapOf("reviewId" to "$reviewId"), iosExecutionParams = mapOf("reviewId" to "$reviewId") ) ), buttons = listOf( Button( "게시물 확인하러 가기 🤩", Link( androidExecutionParams = mapOf("reviewId" to "$reviewId"), iosExecutionParams = mapOf("reviewId" to "$reviewId") ) ) ) ) val isKakaoTalkAvailable = ShareClient.instance.isKakaoTalkSharingAvailable(requireContext()) // 카카오톡 설치여부 확인 if (isKakaoTalkAvailable) { // 카카오톡으로 공유 ShareClient.instance.shareDefault(requireContext(), defaultFeed) { sharingResult, error -> if (error != null) { Log.e(TAG, "카카오톡 공유 실패", error) } else if (sharingResult != null) { Log.d(TAG, "카카오톡 공유 성공 ${sharingResult.intent}") startActivity(sharingResult.intent) Log.w(TAG, "Warning Msg: ${sharingResult.warningMsg}") Log.w(TAG, "Argument Msg: ${sharingResult.argumentMsg}") } } } else { // 웹으로 공유 val sharerUrl = WebSharerClient.instance.makeDefaultUrl(defaultFeed) try { KakaoCustomTabsClient.openWithDefault(requireContext(), sharerUrl) } catch (e: UnsupportedOperationException) { Log.e(TAG, "CustomTabs 지원 브라우저가 없습니다.", e) // CustomTabs 지원 브라우저가 없을 때, 기본 웹 브라우저로 열기 try { val intent = Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl.toString())) startActivity(intent) } catch (e: ActivityNotFoundException) { Log.e(TAG, "인터넷 브라우저가 없습니다.", e) } } } } }나는 reviewId를 받아서 상세 화면을 가야했어가지고, 공유되는 링크 url에 reviewId를 추가해서 보내줬다.

참고로 안드로이드만 되서,,,아이폰으로 하면 안열린다 ㅠㅡㅠ 웹으로 보면 일케 나온다. 그리고 앱으로 보면 내가 지정한대로 버튼이 잘 나온다! 역시 카카오 최고! 딥링크 고민하다가 Firebase Dynamic Link 없어져서 참 난감했는디 히히....

'Android' 카테고리의 다른 글
[Android] 카카오 API 릴리즈키 해시 생성하기 (0) 2024.09.01 [Android] NaviagionBar (하단바) 생성 & 상단 모서리 둥글게 (0) 2024.05.12