APP接入Kakaotalk三方登录

本文档详细介绍了如何在Android应用中集成KakaoTalk登录功能。首先,你需要在Gradle中引入2.5.3版本的KakaoSDK,并配置网络权限和Java8。接着,在Application中初始化SDK。然后,检查并实现登录逻辑,使用KakaoTalkSDK的isKakaoTalkLoginAvailable()方法检测登录可行性。注意,KakaoTalk登录无法直接获取用户ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kakaotalk算是韩国国民级别的APP,只要做韩国移动APP,少不了Kakaotalk三方登录

  IOS开发文档:https://developers.kakao.com/docs/latest/en/kakaologin/ios

安卓开发文档:https://developers.kakao.com/docs/latest/en/kakaologin/android

安卓接入步骤:

1.老步骤,引入sdk 

Set Gradle 

You need to set Gradle by declaring a Maven repository to sync your project with the Android SDK. Depending on the version of Android Studio, how you declare repositories is different.

If you use Android Studio Arctic Fox, declare the Maven repository in dependencyResolutionManagement in the project-level settings.gradle file. For more information, refer to Centralizing repositories declaration.

dependencyResolutionManagement {    
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)    
        repositories {        
            google()        
            mavenCentral()        
            maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }    
    }
}

If you use an earlier version of Android Studio Arctic Fox, declare the Maven repository in allprojects in the project-level build.gradle file.

// NOTE: You cannot declare repositories through 'allprojects' in Android Studio Arctic Fox.
allprojects {    
    repositories {        
        google()        
        jcenter()        
        maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/'}    
    }
}
dependencies {
  implementation "com.kakao.sdk:v2-all:2.11.0" // Add all modules (Available in 2.11.0 or higher)

  implementation "com.kakao.sdk:v2-user:2.11.0" // Kakao Login
  implementation "com.kakao.sdk:v2-talk:2.11.0" // Kakao Talk Social, Kakao Talk messaging
  implementation "com.kakao.sdk:v2-friend:2.11.0" // Friend picker
  implementation "com.kakao.sdk:v2-story:2.11.0" // Kakao Story
  implementation "com.kakao.sdk:v2-share:2.11.0" // Kakao Talk sharing
  implementation "com.kakao.sdk:v2-navi:2.11.0" // Kakao Navi 
}

官方文档给出的最新版本2.11.0 但是引入项目一直报错,无奈只能找老版本

最后测试2.5.3版本可用

    implementation "com.kakao.sdk:v2-user:2.5.3"

2.接下来就是一些基本的配置,要有网络权限,用的还是Java8 

// Use Java 8 features

android {

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    // For Kotlin projects
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

正式环境,千万别忘了加混淆:

Configure for shrinking and obfuscation (Optional) 

If you enable shrinking, obfuscation, and optimization when buiding the release version of your app, add the following -keep lines in the ProGuard rules file to exclude the Kakao SDK from shrinking and obfuscation.

-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter

3.还是常规步骤:初始化SDK 

Initialize SDK 

After installing the SDK, you need to initialize the SDK for initial setup.

Initialize the KakaoSDK instance by adding the init method in the Application instance with your Native app key.

class GlobalApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    // Other codes for initialization 

    // Initialize Android SDK 
    KakaoSdk.init(this, "${YOUR_NATIVE_APP_KEY}")
  }
}

4.开始接入登录逻辑:

  fun onKaKaoTalkClicked() {
        if (UserApiClient.instance.isKakaoTalkLoginAvailable(requireContext())) {
            UserApiClient.instance.loginWithKakaoTalk(requireContext()) { token, error ->
                if (error != null) {
                    LoggerUtils.loginKaKaoToken("failed")
                    CustomMiddleToast.showShort(error.message)
                } else if (token != null) {
                    thirdLogin(ThirdLoginBody.KAKAO, token.accessToken, null)
                    LoggerUtils.loginKaKaoToken("success")
                }
            }
        } else {
            CustomMiddleToast.showShort(ResourceUtil.getString(R.string.login_error_toast_no_kakao))
        }
    }

注意:KakaoTalk SDK 提供了一个 :isKakaoTalkLoginAvailable() 函数,可以检测手机是否安装了Kakao和检测有没有安装上未登录等,如果合适登录,可以拿到一个kakao token 然后将token 传给server,后端通过api可以获取到kakao的user info  但是kakao 不像google  Facebook 拿不到user_id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张海龙_China

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值