Intermittierend hat GoogleTokenResponse.parseIdToken() eine NullPointerExpection, weil die Token-Antwort kein ID-Token enthält. Ohne Code zu ändern, gibt es manchmal einen ID-Token und manchmal nicht. Beachten Sie, dass GoogleTokenResponse.getAccessToken() immer funktioniert.GoogleTokenResponse enthält kein ID-Token, intermittierend
Ohne irgendeine Änderung an einem Code fehlt der ID-Token von einer Minute zur nächsten, auch wenn das Zugriffstoken immer verfügbar ist.
Wie kann ich dies debuggen? Wo kann man hinschauen?
ich den Server Auth-Code mit diesem in einem Android-Client Google Games API Spielen:
PendingResult<Games.GetServerAuthCodeResult> pendingResult =
Games.getGamesServerAuthCode(mGoogleApiClient, Constants.web_client_ID);
pendingResult.setResultCallback(new ResultCallback<Games.GetServerAuthCodeResult>() {
@Override
public void onResult(Games.GetServerAuthCodeResult getTokenResult) {
sendToServer(getTokenResult.getCode());
}
});
Auf der Serverseite (Google Cloud Endpoints), tausche ich den Code für ein Zeichen mit diesem Code:
try {
tokenResponse = new GoogleAuthorizationCodeTokenRequest(
transport,mJFactory,
"https://www.googleapis.com/oauth2/v4/token",
web_client_ID,web_client_secret,
authCode,
"")
.execute();
} ...
String accessToken = tokenResponse.getAccessToken();
GoogleIdToken idToken = null;
try {
idToken = tokenResponse.parseIdToken(); //-- FAILES HERE INTERMITTENTLY!!!!
} ...