2015-04-07 78 views
2

我想列出從谷歌domain.I所有的文件都嘗試了按提到谷歌文檔: https://developers.google.com/drive/v2/reference/files/list#examples如何使用Drive SDK列出域中的所有Google文檔?

我已創建了服務如下:

HttpTransport httpTransport = new NetHttpTransport(); 
    JacksonFactory jsonFactory = new JacksonFactory(); 
    GoogleCredential credential = new GoogleCredential.Builder() 
     .setTransport(httpTransport) 
     .setJsonFactory(jsonFactory) 
     .setServiceAccountId(SERVICE_ACCOUNT_EMAIL) 
     .setServiceAccountScopes(Arrays.asList(DriveScopes.DRIVE)) 
     .setServiceAccountUser(userEmail) 
     .setServiceAccountPrivateKeyFromP12File(
      new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH)) 
     .build(); 
    Drive service = new Drive.Builder(httpTransport, jsonFactory, null) 
     .setHttpRequestInitializer(credential).build(); 

    Files.List request = service.files().list(); 

當我執行這個要求如下:

FileList files = request.execute(); 

我只是 'userEmail' 得到的文件(在創建服務提供)。

我怎樣才能得到所有域的谷歌驅動器文件?我用超級管理員,但我無法得到。

回答

5

要獲得您的谷歌Apps域,你需要的所有文件:

  1. 設置domain-wide delegation of authority與您的服務帳戶和應用程序。
  2. 使用目錄API users.list() API調用來確定Google Apps域中的所有用戶。
  3. 作爲每個用戶,請致電files.list(q='"me" in owners')以獲取用戶擁有的所有文件的列表。

所有這些調用的組合結果將是您的Google Apps域中的所有文件。

1

您不能:)因爲Google Drive文件所有權邏輯以用戶爲中心。

您只能列出用於調用API的用戶的「我的驅動器」中的文件。

相關問題