我正在尝试过滤来自Google Photos API的相册的内容(仅获取照片),但是文档说:
如果过滤器不应该在mediaItems:search请求中使用 设置了AlbumId。如果在设置albumId时使用了过滤器, 返回INVALID_ARGUMENT错误(400)。
这是否意味着我必须下载所有文件,而不是使用MIME类型过滤我自己的响应?还是可以直接在请求中完成?
谢谢!
我的代码:
var params = JSON.parse(localStorage.getItem('oauth2-params'));
var xhr = new XMLHttpRequest();
xhr.open('POST',
'https://photoslibrary.googleapis.com/v1/mediaItems:search?' +
'access_token=' + params['access_token'] +
'&pageSize=25' +
'&albumId=' + albumId +
'&pageToken=' + this.albums[albumId].photos.nextPagination);
xhr.responseType = "json";
xhr.onreadystatechange = (e) => {
if (xhr.readyState === 4 && xhr.status === 200) {
// handling the respons...
} else if(xhr.readyState === 4) {
console.log(xhr.status, xhr.response);
}
};
xhr.send(null);
答案 0 :(得分:0)
不幸的是,目前您不能同时指定媒体类型和专辑作为搜索请求的参数。在问题跟踪器here上有此要求。您可以为问题加注星标,以便在任何更新时得到通知。
现在,您可以自己进行过滤,而无需自己下载文件:检查media item的mimeType
和mediaMetadata
属性。 mimeType
字段指示文件的类型(例如,image/jpeg
或image/png
)。另外,您还可以检查mediaMetadata
属性是否包含photo
。