PYTHON 连接到 Google 团队云端硬盘

PYTHON Connect to Google Team Drive

我正在尝试使用服务帐户

访问google团队驱动器

1) 我去 team drive 并添加为会员服务帐户电子邮件,并授予他完全访问权限

2) 我不确定必须向此服务帐户授予(在控制台内)哪个权限才能连接到 google 团队驱动器

这是我正在使用的代码

def initialize_analyticsreporting():

print("Wait for Initialising")
credentials = ServiceAccountCredentials.from_json_keyfile_name(
    "key.json", "https://www.googleapis.com/auth/drive")

# Build the service object.
analytics = build('drive', 'v3', credentials=credentials)
print(analytics)
print("Service for Google Drive - Initialised")

return analytics


def main(analytics):

    page_token = '1'
    while True:
        response = analytics.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 'Found file: %s (%s)' % (file.get('name'), file.get('id'))
        page_token = response.get('nextPageToken', None)
        if page_token is None:
            print("Token not initilied")
            break
    return response

if __name__ == '__main__':
    analytics = initialize_analyticsreporting()
    main(analytics)

身份验证部分工作正常。

它失败了,因为我不确定 page_token.

我需要什么:我需要使用此服务帐户连接到 Team Drive,并获取每个类别的文件数量,如多少视频、图片等,如果可能的话

如您在 the documentation 中所见,pageToken 是在下一页继续上一个请求的令牌。

假设您在团队云端硬盘中有 1000 个文档,并且您使用的 pageSize 为 100,在第一个请求中您应该发送一个空的 pageToken,响应将是 100 个文件和一个nextPageToken。如果您使用那个 pageToken 执行另一个 files.list 请求,您将从该团队驱动器中获得接下来的 100 个文件,依此类推。

所以在你的情况下,你需要发送一个空的 pageToken 而不是 '1'。

希望清楚!