Android/Social_login

[Android] 카카오 로그인 구현(Kotlin) - 1(준비)

찌김이 2019. 11. 3. 23:17
728x90
반응형

 

카카오 로그인은 아래 개발가이드를 참고해서 만들었습니다.

https://developers.kakao.com/docs/android/getting-started

 

준비

1. Gradle 추가

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

// 카카오 로그인 sdk를 사용하기 위해 필요.
    implementation group: 'com.kakao.sdk', name: 'usermgmt', version: project.KAKAO_SDK_VERSION

 

KAKAO_SDK_GROUP=com.kakao.sdk

KAKAO_SDK_VERSION=1.25.0

 (최신버전 확인하기 - Full SDK Source 기준)

 

 

2. Kakao developer에 가입, 로그인 후 앱 만들기로 앱 생성

 

3. 네이티브 앱 키 복사

 

4. res -> value -> strings.xml 추가

 <resources>
     <string name="kakao_app_key">네이티브 앱 키</string>
 </resources>

 

5. AndroidManifest.xml 권한, 네이티브 앱키 추가

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.kakao_test">
    
    <-- 권한 추가 -->
    <uses-permission android:name="android.permission.INTERNET" />
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        
        <-- 네이티브 앱키 추가 -->
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />
        
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

6. 키해시 구하기

- 앱을 구동한 뒤 로그로 키해시를 확인 

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.content.Context
import android.content.pm.PackageManager
import android.util.Base64
import com.kakao.util.helper.Utility.getPackageInfo
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException


class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
		
        // 키해시 
        var hash_key = getKeyHash(this)
        Log.i("Log",hash_key) // 확인
        
    }
	
    // 키해시 구하기
    fun getKeyHash(context: Context): String? {
        val packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES) ?: return null

        for (signature in packageInfo!!.signatures) {
            try {
                val md = MessageDigest.getInstance("SHA")
                md.update(signature.toByteArray())

                return Base64.encodeToString(md.digest(), Base64.NO_WRAP)
            } catch (e: NoSuchAlgorithmException) {
                Log.w("Log", "Unable to get MessageDigest. signature=$signature", e)
            }

        }
        return null
    }
    
}

앱을 구동하면 로그에 키해시 값이 찍힌다.

7. 플랫폼 추가 후 키해시 등록

 

여기까지 준비가 끝났습니다.

다음 포스팅은 로그인 구현입니다.

728x90
반응형

'Android > Social_login' 카테고리의 다른 글

[Android] 카카오 로그인 구현(kotlin) -2 (구현)  (0) 2019.11.04