Google drive api GoogleDrive API files().list只为整个组织返回一个文件

Google drive api GoogleDrive API files().list只为整个组织返回一个文件,google-drive-api,Google Drive Api,我有以下代码从GoogleDrive获取整个组织的所有文件: def list_files(self): results = self._service_v3.files().list().execute() items = results.get('files', []) return items 问题是该方法只返回一个文件Getting started.pdf 我的整个代码如下所示: class GoogleDriveModule(o

我有以下代码从GoogleDrive获取整个组织的所有文件:

    def list_files(self):
        results = self._service_v3.files().list().execute()
        items = results.get('files', [])
        return items
问题是该方法只返回一个文件Getting started.pdf

我的整个代码如下所示:

class GoogleDriveModule(object):
    def __init__(self, config):
        credentials = service_account.Credentials.from_service_account_file(
        config['credentials-file'], scopes=config['resource-scopes'])
        self._service_v3 = build('drive', 'v3', credentials=credentials)

        def list_files(self):
            results = self._service_v3.files().list().execute()
            items = results.get('files', [])
            return items

如何检索驱动器中的所有文件?

您需要为要从中检索文件的目标用户委派凭据[1]。您可以使用google.oauth2库[2]中服务帐户模块中的with_subject函数执行此操作,例如:

from googleapiclient.discovery import build
import google.auth.transport.requests
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

delegated_credentials = credentials.with_subject('targetUser@example.com')
delegated_credentials.refresh(google.auth.transport.requests.Request())

service = build('drive', 'v3', credentials=delegated_credentials)
[1]


[2]

您使用的是服务帐户还是用户凭据?您的驱动器中还有更多未被丢弃的文件吗?@AndresDuarte我正在使用服务帐户。我有一些文件在我的驱动器我想你是对的,如果我想为特定用户的文件。我需要整个组织的文件,我应该在问题中提到,然后你还需要使用Admin SDK API列出每封电子邮件,并模拟每封邮件以获取其文件。使用循环。