1) 내 애플리케이션 추가하기
2) 모듈 설정하기
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
📄 build.gradle(Project)
repositories {
...
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
}
📄 setting.gradle(Project Settings)
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
}
}
📄 build.gradle(Module)
dependencies {
implementation "com.kakao.sdk:v2-user:2.7.0" // 카카오 로그인
}
<uses-permission android:name="android.permission.INTERNET" />
📄 AndroidMenifests.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.finalproject">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".GlobalApplication"
📄 res/values/strings.xml
<resources>
<!-- kakao_native_app_key는 네이티브 앱키가 '12345'라면 'kakao12345'로 설정 -->
<string name="kakao_native_app_key">kakao 1.4단계 참고하여 네이티브 앱키 입력</string>
<!-- 얘는 그냥 네이티브 앱키 그대로 입력하면 된다 -->
<string name="kakao_app_key">1.4단계 참고하여 네이티브 앱키 입력</string>
</resources>
📄 GlobalApplication.kt
class GlobalApplication : Application() {
override fun onCreate() {
super.onCreate()
// 다른 초기화 코드들
// Kakao SDK 초기화 kakao_native_app_key 아닙니다!! 잘 봐주셔야해욤
KakaoSdk.init(this, getString(R.string.kakao_app_key))
}
}
📄 AndroidMenifests.xml
android:name=".GlobalApplication"
<application
android:name=".GlobalApplication"
...
>
3) 카카오 로그인
📄 AndroidMenifests.xml
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
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" />
<!-- Redirect URI: "kakao{NATIVE_APP_KEY}://oauth" -->
<data
android:host="oauth"
android:scheme="@string/kakao_native_app_key" />
<!--2-4 단계에서 strings.xml에 태그를 굳이 두개로 나눈 이유!
strings에 등록하지 않은 경우
네이티브 앱키가 '123456'이라면
android:scheme="kakao123456"으로 입력 -->
</intent-filter>
</activity>
UserApiClient.instance.loginWithKakaoAccount(context) { token, error ->
if (error != null) {
Log.e(TAG, "로그인 실패", error)
}
else if (token != null) {
Log.i(TAG, "로그인 성공 ${token.accessToken}")
UserApiClient.instance.me { user, error ->
if (error != null) {
Log.e("카카오로그인", "사용자 정보 요청 실패", error)
} else if (user != null) {
Log.i( "카카오로그인", "사용자 정보 요청 성공" +
"\n회원번호: ${user.id}" +
"\n이메일: ${user.kakaoAccount?.email}" +
"\n닉네임: ${user.kakaoAccount?.profile?.nickname}" +
"\n프로필사진: ${user.kakaoAccount?.profile?.thumbnailImageUrl}"
)
}
}
공식문서
- 우선 공식문서를 따라해보시고 막히는 부분만 참고하시길 추천드려요!
Kakao SDK 초기화 kakao_native_app_key 아닙니다!! 잘 봐주셔야해욤
KakaoSdk.init(this, getString(R.string.kakao_app_key))
여기서 저 kakao_app_key 부분에 제 애플리케이션 네이티브 앱 키를 직접 입력하는 게 아니라 제대로 그냥 저대로 넣는 건가요?? (수정않고??)