2017-10-17 1 views
0

Ich entwickle kleines System mit Google Drive API mit JAVA, Ich frage mich, über die TeamDrive API unter Google Drive APIs zu machen.Google Drive API - Wie Unterordner in das Team-Laufwerk

Zunächst einmal habe ich Teamplattenordner,

Team erstellen Antrieb

public static void createTeamDrive(String accessToken) throws IOException { 
    long startTime = System.currentTimeMillis(); 
    TeamDrive teamDriveMetadata = new TeamDrive(); 
    teamDriveMetadata.setName("Team Drive API Test"); 
    String requestId = UUID.randomUUID().toString(); 
    TeamDrive teamDrive = getDriveService(accessToken).teamdrives().insert(requestId, teamDriveMetadata).execute(); 
    System.out.println("[Create TeamDrive] execution time : " + (System.currentTimeMillis() - startTime)); 
} 

und dann teilte ich den Benutzer.

Anteil Benutzer

public static Permission ShareUser(String teamDriveFolderId, String googleMail, String accessToken) { 
    long startTime = System.currentTimeMillis(); 
    Permission userPermission = new Permission().setRole("reader") 
      .setType("user").setEmailAddress(googleMail) 
      .setValue(googleMail).setWithLink(false); 
    try { 
     userPermission = getDriveService(accessToken).permissions().insert(teamDriveFolderId, userPermission) 
       .setSupportsTeamDrives(true).execute(); 
     System.out.println(userPermission.toPrettyString()); 
    } catch (IOException e) { 
     System.out.println(e); 
    } 
    System.out.println("[Give Permission] execution time : " + (System.currentTimeMillis() - startTime)); 
    return userPermission; 
} 

Und dann habe ich versucht mehrmals, Unterordner mit Google-Laufwerk-Bibliothek erstellen Aber ich nicht Unterordner kontinuierlich zu erstellen.

erstellen Unterordner

public static void createSubFolder(String accessToken, String teamDriveFolderId) throws IOException { 
    long startTime = System.currentTimeMillis(); 
    File fileMetaData = new File(); 
    fileMetaData.setTitle("SubFolder Title "); 
    fileMetaData.setMimeType("application/vnd.google-apps.folder"); 
    fileMetaData.setTeamDriveId(teamDriveFolderId); 
    fileMetaData.setParents(Arrays.asList(new ParentReference().setId(teamDriveFolderId))); 
    fileMetaData.set("supportsTeamDrives", true); 
    fileMetaData.set("fields", "id"); 
    File file = null; 
    try { 
     file = getDriveService(accessToken).files().insert(fileMetaData).execute(); 
     System.out.println(file.getId()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("[Create Sub folder] execution time : " + (System.currentTimeMillis() - startTime)); 
} 

Wenn ich die 'createSubfolderFunction' nennen ich 404-Antwort wie diese bekommen kann.

com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found 
{ 
    "code" : 404, 
    "errors" : [ { 
    "domain" : "global", 
    "location" : "file", 
    "locationType" : "other", 
    "message" : "File not found: 0AHGrQOmlzQZUUk9PVA", 
    "reason" : "notFound" 
    } ], 
    "message" : "File not found: 0AHGrQOmlzQZUUk9PVA" 
} 
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146) 

'0AHGrQOmlzQZUUk9PVA' is the exact result from createTeamDrive function. 

Ich bezog mich auf diese Frage. enter link description here

Bitte schauen Sie sich meinen Quellcode an und zeigen Sie auf, was schief gelaufen ist.

Antwort

0

Ich habe das Problem selbst gefunden, Ich sollte setSupportTeamDrive (true) hinzufügen, wenn ich die Einfügemethode verwende.

file = getDriveService(accessToken).files().insert(fileMetaData).setSupportsTeamDrives(true).execute();