Google drive api GoogleDrive API files().list只为整个组织返回一个文件
我有以下代码从GoogleDrive获取整个组织的所有文件: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
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列出每封电子邮件,并模拟每封邮件以获取其文件。使用循环。