2015-10-17 129 views

回答

2

下面的代碼是從他們的API documentation page馬上覆制。 您需要指定$service$folderId

要在GoogleDrive中獲得這樣的ID有點棘手,並且最好通過他們的search parameters完成。查看我的功能getSOFolderByName()作爲示例(搜索名爲'stackoverflow'的文件夾並檢索它可找到的第一個ID)。 listSOFolder()是出發點。

function listSOFolder($service) { 
    $folderID = getSOFolderByName($service); 
    if ($folderID) 
     printFilesInFolder($service, $folderID); 
} 

function getSOFolderByName($service) { 
    $search = "title='stackoverflow' AND mimeType = 'application/vnd.google-apps.folder' AND trashed != true"; 
    $parameters = array("q" => $search); 
    $files = $service->files->listFiles($parameters); 
    if (!empty($files["items"])) { 
     $folderID = $files["items"][0]->getId(); // the first element 
     return $folderID; 
    } else 
     return false; 
} 

/** 
* Print files belonging to a folder. 
* Copied shamelessly from https://developers.google.com/drive/v2/reference/children/list 
* @param Google_Service_Drive $service Drive API service instance. 
* @param String $folderId ID of the folder to print files from. 
*/ 
function printFilesInFolder($service, $folderId) { 
    $pageToken = NULL; 

    do { 
    try { 
     $parameters = array(); 
     if ($pageToken) { 
     $parameters['pageToken'] = $pageToken; 
     } 
     $children = $service->children->listChildren($folderId, $parameters); 

     foreach ($children->getItems() as $child) { 
     print 'File Id: ' . $child->getId(); 
     } 
     $pageToken = $children->getNextPageToken(); 
    } catch (Exception $e) { 
     print "An error occurred: " . $e->getMessage(); 
     $pageToken = NULL; 
    } 
    } while ($pageToken); 
} 
4

您應該能夠簡單地使用Files.list?q=參數列出與根目錄的文件夾。

它看起來是這樣的:q:mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false

在上面的查詢,它是在3個指標分析過濾器。

  1. mime類型=應用/ vnd.google-apps.folder(搜索利用特定文件夾的MIME類型的文件夾)
  2. 在父母
  3. 「根」(搜索位於根的所有文件和文件夾)
  4. 丟棄=假(搜索未丟棄的文件)

你可以試着查詢here

在PHP代碼,這將是這樣的:

$parameters['q'] = "mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false" 
$files = $service->files->listFiles($parameters); 
相關問題