1

saved-access-tokenとsaved-refresh-tokenからGoogleCredential変数を初期化しました。しかし、私はそれが期限切れかどうかを確認するのかわかりませんか?

GoogleCredentialに関数getExpiresInSecondsがあることを知っています。しかし、saved-access-tokenとsaved-refresh-tokenから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からロードする方法を教えてください。

4

1 に答える 1

2

アクセストークンは1時間で期限切れになりますが、更新トークンはユーザーによって取り消されるまで有効です。ただし、これらの時間に依存することは決してなく、代わりに、資格情報が有効でなくなったときに例外をキャッチし、それに応じて対応する準備をしておく必要があります。

完全なフローの説明と、それを実装するサンプルコードについては、ドキュメントを確認してください:https ://developers.google.com/drive/credentials

于 2012-09-27T12:40:14.133 に答える