问题描述
我正在尝试通过以下正文使用mediaItems().search()
方法:
body = {
"pagetoken": page_token if page_token != "" else "","pageSize": 100,"filters": {
"contentFilter": {
"includedContentCategories": {"LANDSCAPES","CITYSCAPES"}
}
},"includeArchiveMedia": include_archive
}
但是问题是集{"LANDSCAPES","CITYSCAPES"}
实际上应该是一组枚举(如Java枚举),而不是像ive这样写的字符串。这是在API中指定的:(https://developers.google.com/photos/library/reference/rest/v1/albums)
ContentFilter-使用此过滤器,您可以根据内容类型返回媒体项目。
JSON表示形式
{ "includedContentCategories": [ enum (ContentCategory) ],"excludedContentCategories": [ enum (ContentCategory) ] }
解决方法
修改点:
- 使用
albumId
和filters
时,发生错误The album ID cannot be set if filters are used.
。因此,当您要使用filters
时,请删除albumId
。 -
includedContentCategories
的值是一个如下数组。-
"includedContentCategories": ["LANDSCAPES","CITYSCAPES"]
-
-
includeArchiveMedia
是includeArchivedMedia
。 - 请在
includeArchivedMedia
中加入filters
。
当以上几点反映到您的脚本时,它如下所示。
修改后的脚本:
body = {
# "albumId": album_id,# <--- removed
"pageToken": page_token if page_token != "" else "","pageSize": 100,"filters": {
"contentFilter": {
"includedContentCategories": ["LANDSCAPES","CITYSCAPES"]
},"includeArchivedMedia": include_archive
}
}