我正尝试使用服务帐户访问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,并获取每个类别的文件数量,例如,如果可能的话,有多少视频,图片等
答案 0 :(得分:0)
如您在the documentation中所见,pageToken是在下一页上继续上一个请求的令牌。
假设您在Team Drive中有1000个文档,而您使用的pageSize
为100,则在第一个请求中,您应该发送一个空的pageToken
,并且响应将为100个文件和一个{{ 1}}。如果您使用该nextPageToken
发出另一个files.list
请求,则将从该Team驱动器中获取接下来的100个文件,依此类推。
因此,在您的情况下,您需要发送一个空的pageToken
而不是'1'。
希望很清楚!