참고할 링크 : https://developers.google.com/identity/one-tap/android/overview?hl=ko
1. 프로젝트 만들기
2. 해당 프로젝트 내에서 'API 및 서비스'에서 사용자 인증 정보로 이동
3. +사용자 인증 정보 만들기 클릭
4. OAuth 클라이언트 ID 클릭
5. 동의 화면 구성 클릭
6. OAuth동의 화면 전체 사용으로 클릭
이렇게 계정을 만든 뒤
다시, '+사용자 인증 정보 만들기' 클릭
앱 유형을 선택할 수 있고, 'Android' 선택
패키지명을 적는데, Android Manifest에 Package명 등록을 해주어야 함
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kr.co.cavedwellers.testapp">
...
</manifest>
'SHA-1 인증서 디지털 지문' 이라는 것이 있는데, 이것은 'jks' keystore서명 파일을 파싱하여 만들 수 있다.
여러 방법이 있지만, 나는 Android Studio에서 Build - General Signed Bundle'탭에서
: 'Create New'하여 jks파일을 새로 만든다
jks파일이 만들어지면 다음과 같이 keytool명령어를 입력한다.
keytool -list -v -keystore .\testapp_keystore.jks
또는, gradle명령으로 생성한다
: gradle siginingReport
그럼, 쭉~ 항목이 나열되는데 그중 SHA1의 값을 복사하면 된다.
그리고 생성...!
[수정]
Android Client는 남겨두고 '웹 클라이언트'로 재생성
Client ID는 웹 클라이언트의 아이디를 사용한다.
http://m.google.android.gms.common.api.ApiException: 10 에러가 발생하면,
꼭 Firebase때문이 아니다. 인증서 키가 다르기 때문이다.
이제 'Android Studio'로 넘어가면,
build.gradle에서 라이브러리를 추가한다
apply plugin: 'com.android.application'
dependencies {
// ...
// google api login
implementation 'com.google.android.gms:play-services-auth:20.7.0'
}
참고링크 : https://developers.google.com/identity/sign-in/android/sign-in?hl=ko
google login Intent를 전송(request)하면 받을 onActivityForResult함수가 Deprecated되어
result를 받을 수 있는 'activityResultLauncher'인스턴스를 만든다.
private val activityResultLauncher: ActivityResultLauncher<Intent> = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
when (result.resultCode) {
Constants.RequestCode.LoginGoogleCode -> {
val task = GoogleSignIn.getSignedInAccountFromIntent(result.data)
try {
val account = task.getResult(ApiException::class.java)
} catch (e: ApiException) {
e.printStackTrace
}
}
}
}
구글 로그인 요청 함수
private fun requestGoogleLogin(): Unit {
// google sign-in options object
val googleSignInOptions = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(Scope((Scopes.DRIVE_APPFOLDER)))
.requestServerAuthCode(resources.getString(R.string.login_google_client_id))
.requestEmail()
.build();
// create client
val googleSignInClient: GoogleSignInClient = GoogleSignIn.getClient(this@MainActivity, googleSignInOptions)
val signInIntent: Intent = googleSignInClient.signInIntent
// startActivityForResult(signInIntent, Constants.RequestCode.LoginGoogleCode) --> deprecated
activityResultLauncher.launch(signInIntent)
}
'dev > aos' 카테고리의 다른 글
[AOS] AnimationSet 만들기 (0) | 2023.11.13 |
---|---|
[AOS] ImageButton에 버튼 클릭 효과 넣기 (0) | 2023.11.13 |
[AOS] Library라이브러리(aar파일) 만드는 방법 (0) | 2023.11.08 |
[AOS] adb연결 및 환경 변수 설정(GRADLE, SDK추가) (0) | 2023.11.08 |
[AOS] Permission정리 (2) | 2023.11.07 |