3

Javaアプリケーションを使用してGoogleスプレッドシートで問題が発生しました。 私は、私もそれが働いて停止した理由を私は知らないCreate Spreadsheet using Google Spreadsheet API in Google drive in Java 昨日の下に、GoogleのAPIの変更のためのソリューションを1年以上いかなる問題なく動作していたアプリケーション作成を掲示していたし、今私は唯一の例外ました:トークンが無効 - 無効なトークン:参照されたトークン文字列を解析できません:base64トークンで無効なgaia_data.AuthSubTokenプロトタイプ

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. 

トークンが無効 - 無効なトークン:参照されたトークン文字列を解析できません:Base64トークンのgaia_data.AuthSubTokenプロトタイプが無効です。 トークンが無効 - 無効なトークン:参照されたトークン文字列を解析できません:Base64トークンのgaia_data.AuthSubTokenプロトタイプが無効です。 エラー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) 

これは罰金働いていたコードの一部であり、今ではありません。

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); <--- 

例外はfeed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class); 私はインターネットですべての答えを探していたに投げるが、できたています今anythigを見つける。 もう一度googleを変更しましたか? 私はこれが役に立たなかった私のアカウントを再作成しました。

答えて

0

(同じ問題を抱えている人は誰でも私と同じ解決策を試すことができます) 私の場合は設定されていますが、フィードの範囲は

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"*/}; 

助けました。 refreshToken()を表示していたとき

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

私はいくつかのフィードが誤った値を持っていたことに気付きました。