2

GoogleドライブSDKを使用して、AndroidアプリケーションからGoogleドライブに新しいドキュメントを作成しようとしています。認証が機能しており、次のコードを使用して簡単なテキストファイルを作成できました。

// com.google.api.services.drive.model.File
File newFile = new File();
newFile.setTitle("Test");
newFile.setMimeType("text/plain");
String contentStr = "This is a test file";      

try {
    File insertedFile = drive.files().insert(
         newFile, ByteArrayContent.fromString("text/plain", contentStr)).execute();
} catch (IOException e) {
    e.printStackTrace();
}

「text/plain」を「application/vnd.google-apps.document」に変更し、コンテンツなしでファイルを挿入すると、ファイルは機能し、新しいドキュメントがGoogleドライブに作成されます。

// com.google.api.services.drive.model.File
File newFile = new File();
newFile.setTitle("Test");
newFile.setMimeType("application/vnd.google-apps.document");   

try {
    File insertedFile = drive.files().insert(newFile).execute();
} catch (IOException e) {
     e.printStackTrace();
}

しかし、コンテンツを含む新しいドキュメントをアップロードしたいのですが、プレーンテキストファイルと同じアプローチを使用する場合は次のようになります。

// com.google.api.services.drive.model.File
File newFile = new File();
newFile.setTitle("Test");

String fileType = "application/vnd.google-apps.document";
newFile.setMimeType(fileType);   

try {
    File insertedFile = drive.files().insert(
              newFile, ByteArrayContent.fromString(fileType, contentStr)).execute();
} catch (IOException e) {
    e.printStackTrace();
}

このエラーが発生します:

 com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
 {
     "code" : 400,
     "errors" : [ {
          "domain" : "global",
          "message" : "Bad Request",
          "reason" : "badRequest"
     } ],
     "message" : "Bad Request"
 }

そして、ファイルは作成されません。誰か助けてもらえますか?

4

1 に答える 1

1

mimeタイプは、ソースドキュメントのmimeタイプである必要があります(例:text/planまたはtext/HTML)。convert = trueを指定してアップロードすると、ドライブ上の結果のファイルのmimeタイプはapplication/vnd.google-apps.documentになります。

于 2012-10-10T01:28:30.040 に答える