네이버 developer 사이트에 들어가서 어플리케이션을 등록하고 api key를 생성합니다. 생성한 api key 는 보안을 위해 key.properties
파일을 생성하여 저장합니다. 앱 단위의 build.gradle 파일에 아래의 코드를 추가하여 key.properties 파일의 값들을 불러옵니다.
def keys = new Properties()
file("../key.properties").withInputStream {
stream -> keys.load(stream)
}
defaultConfig {
...
buildConfigField("String", "NAVER_CLIENT_ID", keys.NAVER_CLIENT_ID)
buildConfigField("String", "NAVER_CLIENT_SECRET", keys.NAVER_CLIENT_SECRET)
}
key.properties 파일을 gitignore 파일에 추가합니다.
앱 모듈의 build.gradle 에 dependency를 추가해 줍니다.
implementation 'com.naver.nid:naveridlogin-android-sdk:4.2.6'
OAuthLoginButton 객체로 버튼을 추가합니다.
<com.nhn.android.naverlogin.ui.view.OAuthLoginButton
android:id="@+id/main_login_naver"
android:layout_width="250dp"
android:layout_height="53dp"
/>
// 네이버 아이디 로그인 인스턴스 초기화
mOAuthLoginInstance = OAuthLogin.getInstance()
mOAuthLoginInstance.init(
App.context,
BuildConfig.NAVER_CLIENT_ID,
BuildConfig.NAVER_CLIENT_SECRET,
R.string.app_name.toString()
)
// OAuthLoginHandler 로 accessToken 가져오기
mOAuthLoginInstance.startOauthLoginActivity(this, @SuppressLint("HandlerLeak")
object : OAuthLoginHandler() {
override fun run(success: Boolean) {
if (success) {
val accessToken: String = mOAuthLoginInstance.getAccessToken(baseContext)
Toast.makeText(baseContext, accessToken, Toast.LENGTH_SHORT).show()
} else {
val errorCode: String =
mOAuthLoginInstance.getLastErrorCode(App.context).code
val errorDesc = mOAuthLoginInstance.getLastErrorDesc(App.context)
Toast.makeText(
baseContext,
"errorCode: $errorCode, errorDesc: $errorDesc",
Toast.LENGTH_SHORT
).show()
}
}
})