안녕하세요.
안드로이드 초보 개발자입니다.
구글 핏 OAuth 관련하여 문의 드립니다. 구글 핏을 연동하여 애플리케이션을 만들고 있는 중인데요.
샘플 코드는 Google Fit 정식 사이트의 Sample 페이지에 있는 github에서 받았습니다.
샘플 중 걸음 수 (StepCounterKotlin) 소스는 걸음 수를 정상적으로 받아왔습니다.
하지만 수면데이터(SleepKotlin) 코드를 실행시켜 보면 아래와 같은 에러가 발생합니다.
com.google.android.gms.common.api.ResolvableApiException: 5000: Application needs OAuth consent from the user at
샘플을 실행하면 첫 실행 시 동의 화면이 표시되고 이후 다음 코드들을 수행하는데요.
아래 코드 부분에서 client.readSession 호출 시 위 에러 문구가 표시되며 Fail 부분을 탑니다.
private fun readSleepSessions() {
val client = Fitness.getSessionsClient(this, getGoogleAccount())
val cal = Calendar.getInstance()
val now = Date()
cal.time = now
val endTime = cal.timeInMillis
cal.add(Calendar.DAY_OF_MONTH, -1)
val startTime = cal.timeInMillis
val sessionReadRequest = SessionReadRequest.Builder()
.read(DataType.TYPE_SLEEP_SEGMENT)
.includeSleepSessions()
.readSessionsFromAllApps()
.setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS)
.build()
client.readSession(sessionReadRequest)
.addOnSuccessListener { dumpSleepSessions(it) }
.addOnFailureListener { Log.e(TAG, "Unable to read sleep sessions", it)
}
}
구글 클라우드 콘솔에서 OAuth 2.0 클라이언트 ID를 추가하였고
OAuth 동의 화면에서 .../auth/fitness.sleep.read 속성도 추가하였습니다.
하지만 왜 위와 같은 에러가 발생하는지 도통 모르겠습니다.
* 개발환경
- 코틀린, 안드로이드스튜디오
- build.gradle(app) 에서 사용하는 라이브러리는
implementation "com.google.android.gms:play-services-fitness:20.0.0"
implementation "com.google.android.gms:play-services-auth:18.1.0"