Google Photos API-如何在设置了AlbumId的情况下过滤相册以获取照片(JPEG)?

时间:2018-09-21 13:18:51

标签: google-api google-photos google-photos-api

我正在尝试过滤来自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);

1 个答案:

答案 0 :(得分:0)

不幸的是,目前您不能同时指定媒体类型和专辑作为搜索请求的参数。在问题跟踪器here上有此要求。您可以为问题加注星标,以便在任何更新时得到通知。

现在,您可以自己进行过滤,而无需自己下载文件:检查media itemmimeTypemediaMetadata属性。 mimeType字段指示文件的类型(例如,image/jpegimage/png)。另外,您还可以检查mediaMetadata属性是否包含photo