안녕하세요. 오랜만(?)에 안드로이드 관련 포스팅을 하게 됐는데, 오늘은 네이버 로그인 연동 포스팅입니다. 제 블로그에 네이버뿐만 아니라 다른 SNS 연동 포스팅도 있으니 아래 링크를 참고해주시면 될 것 같습니다. |
준비사항
IDE : AndroidStudio JDK : JDK 8이상 SDK : API 9(2.3.3) 이상 |
※ 해당 포스팅은 네이버 로그인 4.2.0 기준으로 작성되었습니다.
프로젝트 생성
로그인 연동에 앞서 제일 먼저 네이버 오픈api를 신청해야합니다. 링크에 접속하시면 어플리케이션의 정보와 사용자에게 요구할 정보를 체크해 등록하면 클라이언트 ID와 클라이언트 Secret를 발급받는데 기능 구현에 필요하니 따로 메모해두시면 편할 것 같습니다. 따로 메모를 안하셔도 추후에 애플리케이션 정보에서 다음과 같이 확인 가능하니 참고하시길 바랍니다. |
환경설정 - library파일 다운
링크를 통해 아래와 같은 소스코드를 다운 받습니다. 그리고 naveridlogin-sdk-android-4.2.0 > naveridlogin_android_sdk_4.2.0 > naveridlogin_android_sdk_4.2.0.aar 파일을 프로젝트 libs파일에 복사합니다. |
gradle (app) 설정
전 단계에서 복사한 라이브러리를 복사하지 않으면 컴파일이 정상적으로 되지 않습니다. |
compile ('com.naver.nid:naveridlogin-android-sdk:4.2.0')
compile files('libs/naveridlogin_android_sdk_4.2.0.aar')
소스코드 작성
네이버 로그인 인스턴스를 초기화하는데 각 파라미터에 해당하는 값은 다음과 같습니다. clientid : 애플리케이션 등록후 발급받은 클라이언트 아이디 clientSecret : 애플리케이션 등록후 발급받은 클라이언트 시크릿 clientName : 사용자가 네이버 로그인을 시도 했을때 보여질 앱 이름 |
참고 : .init 을 통해 생성된 접근토큰과 갱신토큰은 해당 메소드를 재 실행해도 삭제 되지않고, OAuthLogin.logout(context); 를 통해서만 삭제됩니다.
//naver
public static OAuthLogin mOAuthLoginModule;
OAuthLoginButton mOAuthLoginButton;
private void setNaver() {
mOAuthLoginModule = OAuthLogin.getInstance();
mOAuthLoginModule.init(this, "clientid", "clientSecret", "clientName");mOAuthLoginButton = findViewById(R.id.button_naverlogin);
mOAuthLoginButton.setOAuthLoginHandler(mOAuthLoginHandler);
// mOAuthLoginModule.startOauthLoginActivity(this, mOAuthLoginHandler);
}
private OAuthLoginHandler mOAuthLoginHandler = new OAuthLoginHandler() {
@Override
public void run(boolean success) {
if (success) {
String accessToken = mOAuthLoginModule.getAccessToken(context);
String refreshToken = mOAuthLoginModule.getRefreshToken(context);
long expiresAt = mOAuthLoginModule.getExpiresAt(context);
String tokenType = mOAuthLoginModule.getTokenType(context);
} else {
String errorCode = mOAuthLoginModule.getLastErrorCode(context).getCode();
String errorDesc = mOAuthLoginModule.getLastErrorDesc(context);
Toast.makeText(context, "errorCode:" + errorCode
+ ", errorDesc:" + errorDesc, Toast.LENGTH_SHORT).show();
}
};
};
버튼추가
네이버에서 제공하는 OAuthLoginButton 객체 버튼을 추가합니다. |
<com.nhn.android.naverlogin.ui.view.OAuthLoginButton
android:layout_width="wrap_content"
android:layout_height="50dp"
android:id="@+id/button_naverlogin"/>
위의 방법처럼 네이버에서 제공하는 버튼을 사용한 로그인 구현은 끝이 났지만, 커스텀 버튼으로 로그인하는 방법도 아래에 계속 포스팅 하도록 하겠습니다.
커스텀 버튼 사용하기
버튼추가
안드로이드 위젯인 버튼을 추가합니다. |
<Button
android:id="@+id/bt_naver"
android:layout_width="wrap_content"
android:text="네이버로그인"
android:layout_height="wrap_content" />
클릭이벤트 추가
객체 초기화 밑 클릭이벤트와 연결합니다. |
Button bt_naver=findViewById(R.id.bt_naver);
bt_naver.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOAuthLoginModule.startOauthLoginActivity(MainActivity.this,mOAuthLoginHandler);
}
});
생각보다 간단한 과정이라 쉽게 포스팅이 끝이 났습니다.
이상으로 마칩니다.
※해당 포스팅은 지극히 주관적인 내용으로 저자의 복기 목적으로 작성된 것이고, 내용에대해 수정이나 추가 요청은 언제든 환영합니다.
'안드로이드 > 자바' 카테고리의 다른 글
[안드로이드/Android] 이미지뷰 타입 (0) | 2018.01.09 |
---|---|
[안드로이드/Android] 권한 체크하기 (6) | 2017.12.17 |
[안드로이드/Android] Firebase Database 시작하기 (4) | 2017.11.10 |
[안드로이드/Android]Firebase Database 데이터검색 (4) | 2017.11.10 |
[안드로이드/Android] Firebase Database 데이터업데이트 (0) | 2017.11.10 |