2017-10-17 7 views
0

에 하위 폴더를 만들려면 내가 Google Drive APIsTeamDrive API에 대해 궁금 Google Drive APIJAVA와, 사용하여 작은 시스템을 개발하고 있어요. 모든구글 드라이브 API - 팀 드라이브

첫째, 나는

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

팀 드라이브

만들기 팀 드라이브 폴더를 생성 한 후 나는 사용자를 공유했다.

공유 사용 후

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

내가, 구글 드라이브 라이브러리를 여러 번 사용 을 하위 폴더를 만들려고하지만 지속적으로 하위 폴더를 만들지 못했습니다. 나는 'createSubfolderFunction' 를 호출 할 때

내가이 같은 404 응답을 얻을 수있는 하위 폴더

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

을 만듭니다.

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. 

나는이 질문을 언급했다. enter link description here

제 소스 코드를보고 잘못된 점을 지적하십시오.

답변

0

직접 문제가 발견되었습니다. insert 메서드를 사용할 때 setSupportTeamDrive (true)를 추가해야합니다.

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