3

Ich habe strage Problem mit Google-Tabellenkalkulation über Java-Anwendung. Ich hatte Anwendung geschaffen, die länger als 1 Jahr ohne Frage arbeitet ich gepostet auch eine Lösung für die Google-API unter Änderung Create Spreadsheet using Google Spreadsheet API in Google drive in Java Gestern ich weiß nicht, warum, aber es funktioniert nicht, und jetzt habe ich nur Ausnahme:Token ungültig - Ungültiges Token: Verwiesene Token-Zeichenfolge kann nicht analysiert werden: Ungültige gaia_data.AuthSubToken-Proto auf Base64-Token

Exception in thread "main" com.google.gdata.client.GoogleService$SessionExpiredException: Token invalid - Invalid token: Cannot parse referred token string: Invalid gaia_data.AuthSubToken proto on base64 token. 

Token ungültig - Ungültiges Token: Verwendete Token-Zeichenfolge kann nicht analysiert werden: Ungültiges Protokoll "gaia_data.AuthSubToken" auf dem Base64-Token. Token ungültig - Ungültiges Token: Verwendete Token-Zeichenfolge kann nicht analysiert werden: Ungültiges Protokoll "gaia_data.AuthSubToken" auf dem Base64-Token. Fehler 401

at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:570) 
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560) 
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538) 
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536) 
at com.google.gdata.client.Service.getFeed(Service.java:1135) 
at com.google.gdata.client.Service.getFeed(Service.java:998) 
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645) 
at com.google.gdata.client.Service.getFeed(Service.java:1017) 
at SandboxAll.<init>(SandboxAll.java:155) 
at SandboxCheck.main(SandboxCheck.java:207) 

Dieser Teil des Codes ist, die fein gearbeitet und jetzt ist es nicht:

SpreadsheetService service; 
SpreadsheetFeed feed; 
SPREADSHEET_FEED_URL = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full"); 
     com.google.api.client.json.jackson.JacksonFactory jsonFactory = new com.google.api.client.json.jackson.JacksonFactory(); 
     String[] SCOPESArray = {"https://spreadsheets.google.com/feeds", "https://spreadsheets.google.com/feeds/spreadsheets/private/full", "https://docs.google.com/feeds"}; 
     final List SCOPES = Arrays.asList(SCOPESArray); 
     GoogleCredential credential = new GoogleCredential.Builder() 
       .setTransport(httpTransport) 
       .setJsonFactory(jsonFactory) 
       .setServiceAccountId("[email protected]") 
       .setServiceAccountScopes(SCOPES) 
       .setServiceAccountPrivateKeyFromP12File(p12) 
       .build(); 
     service = new SpreadsheetService("Sandbox"); 
     service.setOAuth2Credentials(credential); 
     service.setReadTimeout(160000); 
     service.setConnectTimeout(16000); 
     --->feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class); <--- 

Die Ausnahme auf feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class); werfen I wurde im Internet für jede Antwort suchen, konnte aber Finde jetzt irgendwas. Hat Google wieder etwas geändert? Ich habe mein Konto neu erstellt das dies nicht geholfen hat.

Antwort

0

(Ich möchte meine Antwort nicht bearbeiten, damit jemand mit dem gleichen Problem versuchen kann, die gleiche Lösung wie ich zu überprüfen) Ich weiß nicht, aber in meinem Fall Einstellung Scope nur für Feed

String[] SCOPESArray = {"https://spreadsheets.google.com/feeds"/*, "https://spreadsheets.google.com/feeds/spreadsheets/private/full", "https://docs.google.com/feeds","https://www.googleapis.com/auth/drive"*/}; 

geholfen. Als ich refreshToken anzeigte()

System.out.println(credential.refreshToken()); 

Ich habe bemerkt, dass falschen Wert einige des Feeds hatten.

Verwandte Themen