簡體   English   中英

如何使用 PHP 和 Google Drive API 獲取基於所有者的所有文件夾和文件

[英]How to get all folders & files based on Owner using PHP with Google Drive API

如何根據所有者獲取所有文件和文件夾?

https://imgur.com/gallery/uf8nXOX

我試過這個查詢,但它只是列出所有 sharedWithMe :

<?php
        
        //fields can be use files(id, name, modifiedTime, mimeType, parents, trashed, permissions, webViewLink, webContentLink, exportLinks), nextPageToken
        
        $client = new Google_Client();
        $client->setApplicationName('Google Drive API PHP Quickstart');
        $client->setAuthConfig('gdrive/json/'. $_SESSION['json'] . '.json');
        $client->setScopes(Google_Service_Drive::DRIVE);
        $client->setSubject($_SESSION['json_email']);
        $client->setAccessType('offline');
                
        
            $service = new Google_Service_Drive($GLOBALS['client']);
            
            $parameters['pageSize'] = 250;
            $parameters['q'] = "sharedWithMe and mimeType='application/vnd.google-apps.folder'"; 
            //"mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false";
            $parameters['fields'] = 'files(id, name,modifiedTime,owners), nextPageToken';
            //'files(id, name, modifiedTime, mimeType, parents, trashed, permissions, webViewLink, webContentLink, exportLinks), nextPageToken'; 
                
            $files = $service->files->listFiles($parameters);
        
            foreach( $files as $k => $file ){
            echo " <tr>
                            <td><large><i class='ti-folder'></i></large>
                                ";
                $forlinkowners = $file['owners'];
                        foreach ($forlinkowners as $pp => $getowner2){
                            echo "<a href='rmsystems.php?shared&&id=".$file['id']."&&foldername=".$file['name']."&&email=".$getowner2['emailAddress']."'>";
                    
                            echo folder_from_rename($file['name']) . "&nbsp&nbsp<span class='badge badge-primary'>link</span>";
                                
                            echo "</a></td>
                             <td><i class='ti-crown'></i>&nbsp&nbsp".retrieve_name($getowner2['emailAddress']).
                                     "</td>"; 
                            }
                                echo "</tr> ";
                            }
            ?>

我只想按所有者對它們進行分組。 有什么建議么? 我將如何在 PHP 中執行它還是應該在 google API 中查詢它?

非常感謝!

您的請求使用的是 sharedWithMe 您應該使用“owners in”

"'test@example.org' in owners"

來自評論

您不能搜索不在文件夾(父)中的文件,您只能搜索文件夾中的文件

'root' in parents將返回'root' in parents所有文件。 但是, 'root' not in parents將失敗,因為它無效。

我 100% 確定您所說的父鍵是什么意思。 如果您只想要某些目錄中的文件,我建議您對每個想要的目錄運行請求,而忽略不需要的目錄。 這將意味着多個請求或只是獲取所有內容並在本地對其進行排序。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM