PYTHON连接到Google Team Drive

时间:2018-08-17 06:31:48

标签: python google-drive-api google-drive-realtime-api service-accounts google-drive-team-drive

我正尝试使用服务帐户访问Google Team Drive

1)我去了团队合作,并将其添加为会员服务帐户电子邮件,并授予他完全访问权限

2)我不确定必须向该服务帐户(在控制台内)授予哪个权限才能连接到Google Team Drive

这是我正在使用的代码

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,并获取每个类别的文件数量,例如,如果可能的话,有多少视频,图片等

1 个答案:

答案 0 :(得分:0)

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

假设您在Team Drive中有1000个文档,而您使用的pageSize为100,则在第一个请求中,您应该发送一个空的pageToken,并且响应将为100个文件和一个{{ 1}}。如果您使用该nextPageToken发出另一个files.list请求,则将从该Team驱动器中获取接下来的100个文件,依此类推。

因此,在您的情况下,您需要发送一个空的pageToken而不是'1'。

希望很清楚!