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; } } |
728x90
'안드로이드 > 로그인 및 인증' 카테고리의 다른 글
Android 암호화 로그인 처리 (0) | 2019.11.24 |
---|---|
디버그 서명 인증서 SHA-1 쉽게 등록하는 방법 (0) | 2019.11.14 |
카카오 로그인 연동 - LoginActivity 구현 및 로그아웃 처리 (2) | 2019.10.27 |
Android Studio 기반 Login Activity Form 예제 (0) | 2018.09.29 |