'안드로이드 카카오 로그인 연동'에 해당되는 글 1건

728x90

https://developers.kakao.com/ 에 접속하면 연동에 필요한 기본 사항이 설명되어 있다.

 

스크롤해서 내리면 Gradle 환경에서 사용하기 부분이 나온다.

 

 

프로젝트 build.gradle 에 추가할 사항

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

 

앱 build.gradel 에 추가할 사항

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation group: 'com.kakao.sdk', name: 'usermgmt', version: '1.14.0'
}
 

 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.link2me.android.auth_kakao">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".GlobalApplication"
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".SampleLoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />

        <activity
            android:name="com.kakao.auth.authorization.authcode.KakaoWebViewActivity"
            android:launchMode="singleTop"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>
 

 

 

앱 생성

1. 내 애플리케이션 > 앱 만들기를 통해 앱을 생성한다.

   - 테스트 앱으로 생성했다.

 

2. Android SDK 사용시 네이티브 앱 키

   - 생성한 앱의 res/values/strings.xml 파일 내에 키를 복사하여 붙여넣기 한다.

<resources>
    <string name="app_name">Auth_KaKaO</string>
    <string name="kakao_app_key">1e6fd36c1b12AAA2dc22346c3544516f</string>
</resources>

 

3. 플랫폼 추가

   - 플랫폼 추가를 눌러서 패키지명을 등록한다.

 

 

키 해시를 등록해야 하는데

Commandline으로 키해시 구하기 로 했더니 openssl 에 대한 에러 메시지가 나오더라.

그래서 앱 내 자바 코드로 키 해시 구하기 메소드를 이용해서 구했다.

 

import android.content.pm.Signature;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import static com.kakao.util.helper.Utility.getPackageInfo;

public class GetHashKey extends AppCompatActivity {
    static final String TAG = GetHashKey.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_get_hash_key);

        System.out.println("key Hash : " +  getKeyHash(GetHashKey.this));
    }

    public static String getKeyHash(final Context context) {
        PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
        if (packageInfo == null)
            return null;

        for (Signature signature : packageInfo.signatures) {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                return Base64.encodeToString(md.digest(), Base64.NO_WRAP);
            } catch (NoSuchAlgorithmException e) {
                Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
            }
        }
        return null;
    }
}

 

블로그 이미지

Link2Me

,