2012-09-27 6 views
1

saved-access-token 및 saved-refresh-token에서 GoogleCredential 변수를 초기화했습니다. 하지만 만료되었는지 여부를 확인하지 못합니까?GoogleCredential이 만료되었는지 확인하는 방법

GoogleCredential에 getExpiresInSeconds라는 함수가 있다는 것을 알고 있습니다. 하지만 저장된 액세스 토큰 및 저장된 새로 고침 토큰에서 GoogleCredential을 초기화하면 getExpiresInSeconds 함수는 null을 반환합니다.

이 경우 getExpiresInSeconds가 null

mResponse = mFlow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute(); 
mCredential = new GoogleCredential.Builder().setClientSecrets(CLIENT_ID, CLIENT_SECRET).setJsonFactory(mJsonFactory).setTransport(mHttpTransport).build(); 
mCredential.setFromTokenResponse(mResponse); 
mCredential.getExpiresInSeconds() // will return expired value in second 

하지만이 경우

String accessTokenSave = mPrefs.getString(GOOGLE_DRIVE_TOKEN, "NO KEY"); 
String accessRefreshTokenSave = mPrefs.getString(GOOGLE_DRIVE_REFRESH_TOKEN, "NO KEY"); 

mHttpTransport = new NetHttpTransport(); 
mJsonFactory = new JacksonFactory(); 
mCredential = new GoogleCredential.Builder() 
.setClientSecrets(CLIENT_ID, CLIENT_SECRET) 
.setJsonFactory(mJsonFactory) 
.setTransport(mHttpTransport).build(); 

mCredential.setAccessToken(accessTokenSave); 
mCredential.setRefreshToken(accessRefreshTokenSave); 
mCredential.getExpiresInSeconds() // will return null value 

그래서 내가 mCredential을 확인 할 수있는 방법 경우는 액세스 토큰이 만료 accessTokenSave 및 accessRefreshTokenSave

+0

나는이 라이브러리는 정말 샘플을 사용하고 있습니다. http://code.google.com/p/android-query/ –

답변

1

에서로드되지 않습니다 새로 고침 토큰은 사용자가 취소 할 때까지 유효합니다. 그러나이 시간에 의존해서는 안되며 자격 증명이 더 이상 유효하지 않을 때 예외를 잡아 그에 따라 대응할 준비를해야합니다.

확인 함께 샘플 코드를 구현하는 전체 흐름에 대한 설명은 문서 : https://developers.google.com/drive/credentials

+0

이것은 Google의 수석 개발자 프로그램 엔지니어 인 Claudio에게는 받아 들일 수있는 대답이 아닙니다. ""내가 복사해도 동일한 문제가 있습니다. 공식 문서에서 코드입니다. stackoverflow 허용 임시 채팅을 열려면 (하지만 난 방법을 모르겠다.) 당신은 disucs에 아무런 문제가 없다면, 저에게 연락하십시오. (그리고 제가 해결책을 게시 할 것이라고 약속합니다. 거의 미래) 또는 제발, @quantm 및 모든 관심있는 사용자에 대한 귀하의 응답을 다시 작성하십시오. 정말 고마워 ;-) – Aerox

관련 문제