2013-03-07 49 views
1

我需要使用Google Drive API從我的Java應用程序插入並讀取Google雲端硬盤中的文件。我使用服務帳戶。使用服務帳戶在Google雲端硬盤中插入文檔時出現錯誤500

我在谷歌API控制檯創建了一個項目,啓用了「驅動器API」服務,創造了一個新的服務帳戶,並使用我的應用程序下載的私鑰:

GoogleCredential credential = new GoogleCredential.Builder() 
      .setTransport(HTTP_TRANSPORT) 
      .setJsonFactory(JSON_FACTORY) 
      .setServiceAccountId(this.serviceEmail) 
      .setServiceAccountScopes(DriveScopes.DRIVE) 
      .setServiceAccountPrivateKeyFromP12File(new java.io.File(this.privateKeyFilePath)) 
      .build(); 

然後我的硬盤服務被實例化爲:

Drive driveService = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, null) 
      .setHttpRequestInitializer(credential) 
      .build(); 

這工作正常,我可以插入,共享,讀取Google雲端硬盤中的文件。

我的問題是,我在我的Google API控制檯中創建了第二個項目,做了相同的步驟,但無法使其工作。我的2個項目看上去是一樣的,但與第二,我一直有一個錯誤響應,當我嘗試插入一個新的文檔:

com.google.api.client.http.HttpResponseException: 500 Internal Server Error 
{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "internalError", 
    "message": "Internal Error" 
    } 
    ], 
    "code": 500, 
    "message": "Internal Error" 
} 
} 

at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:978) 
at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:237) 
at com.google.api.services.drive.Drive$Files$Insert.executeUnparsed(Drive.java:309) 
at com.google.api.services.drive.Drive$Files$Insert.execute(Drive.java:331) 

的第一個項目已創建4個月前,而第二(不wrok)已經創建了這些天。

如何獲得有關此錯誤的更多詳細信息?什麼會導致這個問題?

回答

0

此問題可能是由錯誤的文件格式造成的。 嘗試直接在Google雲端硬盤中上傳文件並獲取更詳細的信息。 我收到以下消息: 「上傳的文件格式錯誤 - 例如,您可能試圖將CSV文件上傳爲XLS文件。」

但是,我不知道如何通過API獲取有關錯誤的更多詳細信息。如果有人知道,請告訴我!

相關問題