안드로이드 카카오톡 로그인연동하기
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
'IT개발일지 > Android' 카테고리의 다른 글
[Android] 네이버로그인 연동하기 (2) | 2019.03.19 |
---|---|
[Android] TextView 부분 글자 색상 변경 (0) | 2019.03.18 |
[Android]Click ViewPager 터치/클릭 (0) | 2019.03.04 |
[Android]줌인 줌아웃 이미지 뷰 PhotoView (0) | 2019.02.28 |
[Android]No Network Security Config specified, using platform default (네트워크 보안 문제) (0) | 2019.02.22 |