티스토리 뷰
이번에 카카오링크 안드로이드 버전을 적용하면서 초보 개발자분들이 적용하기에는 설명이 부족한 부분이 많다는 것을 느꼈습니다.
카카오 개발가이드를 따라하다가 막히는 부분이 많다면 아래 내용대로 따라오시면 성공하실 수 있을겁니다!!
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
카카오 링크를 추가할 엑티비에 해당 메소드를 추가시킵니다.
템플릿을 해당 링크에서 확인할 수 있으며 가장 기본이 되는 피드 템플릿 소스를 가져왔습니다.
https://developers.kakao.com/docs/android/kakaotalk-link#피드-템플릿-보내기
자바 코드
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
'안드로이드' 카테고리의 다른 글
[가즈아 계산기] 일부 LG폰에서 키보드에 소수점이 나오지 않는 증상 (0) | 2023.03.20 |
---|---|
안드로이드 카카오 API 디버그 키, 릴리즈 키 (1) | 2020.02.05 |
[Android] AAPT2 process unexpectedly exit. Error output: 에러 (0) | 2019.12.23 |
[Android] Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml (2) | 2019.11.05 |
[Android] Android Studio에서 Key Hash 구하기 (2) | 2019.11.01 |
"이 블로그의 모든 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
- Total
- Today
- Yesterday