0

当我运行以下代码时,我收到此错误。

{'error': {'code': 400, 'message': '收到无效的 JSON 有效负载。未知名称“album_id”:原始字段不重复,无法启动列表。','status':'INVALID_ARGUMENT','details':[{'@type':'type.googleapis.com/google.rpc.BadRequest' , 'fieldViolations': [{'description': '接收到无效的 JSON 有效负载。未知名称“album_id”:原始字段不重复,无法启动列表。'}]}]}}

如果我删除 "albumId": ["albumid code"] 它工作正常并返回

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
4

2 回答 2

2

关于 albumId 和过滤器是独占的评论是正确的,所以你需要选择一个或另一个。但是,假设您想单独使用albumId,则需要删除albuid代码周围的方括号,这是我的代码中的一个片段:

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']))
于 2019-01-02T04:10:30.373 回答
0

编辑: 显然你不能一起使用albumIdfilters来源

filtersobject(Filters)

应用于请求的过滤器。不能与 . 一起设置albumId


除此之外,albumId应该是一个string不是数组:source

"albumId": "<albumid code>",
于 2018-10-29T19:02:25.537 回答