본문 바로가기

IT개발일지/Android

[Android] 초간단 카카오톡 로그인 연동

안드로이드 카카오톡 로그인연동하기


1. build.gradle (app) 디펜던시 추가하기


implementation group: 'com.kakao.sdk', name: 'usermgmt', version: project.KAKAO_SDK_VERSION


2. build.gradle (project)


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


3. manifest 선언하기

  (kakao_app_key 에는 자신의 네이티브 앱키를 넣어주시면 됩니다.)

  => 네이티브 앱키는 카카오톡 개발자 센터에서 확인하실수 있습니다.


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


4. gradle.properties (project properties)


KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.14.0



5.GlobalApplication 파일 만들기


public class GlobalApplication extends Application {

private static GlobalApplication instance;

public static GlobalApplication getGlobalApplicationContext() {
if (instance == null) {
throw new IllegalStateException("This Application does not inherit com.kakao.GlobalApplication");
}

return instance;
}

private static class KakaoSDKAdapter extends KakaoAdapter {
/**
* Session Config에 대해서는 default값들이 존재한다.
* 필요한 상황에서만 override해서 사용하면 됨.
* @return Session의 설정값.
*/
@Override
public ISessionConfig getSessionConfig() {
return new ISessionConfig() {
@Override
public AuthType[] getAuthTypes() {
return new AuthType[] {AuthType.KAKAO_LOGIN_ALL};
}

@Override
public boolean isUsingWebviewTimer() {
return false;
}

@Override
public boolean isSecureMode() {
return false;
}

@Override
public ApprovalType getApprovalType() {
return ApprovalType.INDIVIDUAL;
}

@Override
public boolean isSaveFormData() {
return true;
}
};
}

@Override
public IApplicationConfig getApplicationConfig() {
return new IApplicationConfig() {
@Override
public Context getApplicationContext() {
return GlobalApplication.getGlobalApplicationContext();
}
};
}
}

@Override
public void onCreate() {
super.onCreate();
instance = this;
// Kakao Sdk 초기화
KakaoSDK.init(new KakaoSDKAdapter());
}

@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}

@Override
public void onTerminate() {
super.onTerminate();
instance = null;
}

}



6. Manifest 에 추가하기


<application
android:name=".kakao.GlobalApplication"
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"
android:largeHeap="true">



7. 사용하기 (로그인 버튼을 누를 경우 호출하기)


Session session = Session.getCurrentSession();
session.addCallback(new SessionCallback());
session.open(AuthType.KAKAO_LOGIN_ALL, act);


8. 콜백선언 하기


private class SessionCallback implements ISessionCallback {

@Override
public void onSessionOpened() {
//redirectSignupActivity();
requestMe();
}

@Override
public void onSessionOpenFailed(KakaoException exception) {
if(exception != null) {
Logger.e(exception);
}
closeProgressbar();
}
}


9. 결과 받아오기


public void requestMe() {
// 사용자정보 요청 결과에 대한 Callback
UserManagement.getInstance().requestMe(new MeResponseCallback() {

// 세션 오픈 실패. 세션이 삭제된 경우,

@Override
public void onSessionClosed(ErrorResult errorResult) {
Log.e("SessionCallback :: ", "onSessionClosed : " + errorResult.getErrorMessage());
closeProgressbar();
}

// 회원이 아닌 경우,
@Override
public void onNotSignedUp() {
Log.e("SessionCallback :: ", "onNotSignedUp");
closeProgressbar();
}

// 사용자정보 요청에 성공한 경우,
@Override
public void onSuccess(UserProfile userProfile) {
Log.e("SessionCallback :: ", "onSuccess");
email = Long.toString(userProfile.getId());
password = userProfile.getUUID();

}

// 사용자 정보 요청 실패
@Override
public void onFailure(ErrorResult errorResult) {
Log.e("SessionCallback :: ", "onFailure : " + errorResult.getErrorMessage());
closeProgressbar();
}
});
}


이상으로 카카오톡 로그인 연동을 알아 보았습니다~!

더 좋은 방법이 있으면 댓글로 남겨주세요~!


#안드로이드 #안드로이드개발 #카카오톡 #로그인연동

#초간단 #카카오톡로그인연동 #android