使用服务帐户访问我的谷歌驱动器上的数据[重复]

问题描述 投票:0回答:1

我无法使用您在下面看到的代码读取我保存在“Google 云端硬盘”上的文件。

一切似乎都很好,代码没有出现错误,但找不到 Google 云端硬盘上的文件,为什么?
我的错在哪里?

from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

service_account_json_key = '****sa-key-jsonfile****.json'
SCOPES = ['https://www.googleapis.com/auth/drive']
creds = service_account.Credentials.from_service_account_file(
    filename=service_account_json_key, scopes=SCOPES)


def search_file():
    """Search file in drive location"""
    try:
        # create drive api client
        service = build("drive", "v3", credentials=creds)
        files = []
        page_token = None
        while True:
            # pylint: disable=maybe-no-member
            response = (
                service.files()
                .list(
                    # q="mimeType='image/jpeg'",
                    spaces="drive",
                    fields="nextPageToken, files(id, name)",
                    pageToken=page_token,
                )
                .execute()
            )
            for file in response.get("files", []):
                # Process change
                print(f'Found file: {file.get("name")}, {file.get("id")}')
            files.extend(response.get("files", []))
            page_token = response.get("nextPageToken", None)
            if page_token is None:
                break

    except HttpError as error:
        print(f"An error occurred: {error}")
        files = None

    return files


if __name__ == "__main__":
    ret = search_file()
    print(ret)

python google-drive-api service-accounts google-api-python-client
1个回答
0
投票

我终于找到了如何做到这一点: 我必须将包含我的文件的目录共享到服务帐户的电子邮件!

© www.soinside.com 2019 - 2024. All rights reserved.