当我运行以下代码时,我得到了这个错误。
{'错误':{'代码': 400,'消息':'收到的JSON有效负载无效。未知名称album_id:原始字段不重复,无法启动列表。,状态:INVALID_ARGUMENT,详细信息': [{'@类型:type.googleapis.com/google.rpc.BadRequest,字段违反:[{描述:收到无效的JSON负载。未知名称"album_id":原始字段不重复,无法启动列表.'}]}]}}
如果我删除的"相册":["相册代码"]它工作正常,并返回
10个新项目,共10个
def _actually_list_media_items(session):
ret = []
params = {
'fields': 'mediaItems(id,baseUrl,filename,mimeType,productUrl),nextPageToken',
}
search_json = {
"pageSize": 10,
"albumId": ["<albumid code>"],
"filters": {
"includeArchivedMedia": False,
"contentFilter": {
"excludedContentCategories": [
"DOCUMENTS",
"RECEIPTS",
"SCREENSHOTS",
"UTILITY",
"WHITEBOARDS",
]
},
"mediaTypeFilter": {
"mediaTypes": [
"PHOTO",
],
},
},
}
tmp = 0
while tmp < 1:
rsp = session.post(
'https://photoslibrary.googleapis.com/v1/mediaItems:search',
params=params,
json=search_json,
).json()
if 'error' in rsp:
print(rsp)
cur = [m for m in rsp.get('mediaItems', [])]
ret += cur
print(f'{len(cur)} new items, total {len(ret)}')
pageToken = rsp.get('nextPageToken')
if pageToken is None:
break
params['pageToken'] = pageToken
tmp = tmp + 1
return ret
关于albumId和筛选器是独占的评论是正确的,因此您需要选择其中一个。但是,假设您想单独使用albumId,则需要删除albumId代码周围的方括号,下面是我的代码片段:
searchbody = {
"albumId": album_id,
"pageSize": 10
}
print(searchbody)
mediaresults = gAPIservice.mediaItems().search(body=searchbody).execute()
mediaitems = mediaresults.get('mediaItems', [])
for item in mediaitems:
print(u'{0} ({1})'.format(item['filename'], item['id']))
编辑:显然您不能同时使用albumId
和过滤器
:source
过滤器
:对象(过滤器)
要应用于请求的筛选器。不能与bumId
一起设置。
除此之外,mbmId
是一个应该是字符串
而不是数组:源
"albumId": "<albumid code>",