【问题标题】:Google Photos API with filter to get photos with album information?带有过滤器的 Google Photos API 以获取带有相册信息的照片?
【发布时间】:2019-02-16 06:50:18
【问题描述】:

我正在浏览新的 Google Photos API 的文档,但找不到任何关于相册元数据的信息以及照片信息。

例如,如果我使用带有过滤器的列表库内容 API,则生成的照片不会向我提供该照片所属相册的详细信息。

现在的 API 甚至可以吗?

我也签入了mediaItems 参考。找不到这样的项目。有人探索过这个东西吗?

【问题讨论】:

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


    【解决方案1】:

    一个媒体项目可以属于多个相册,其中一些可以共享。

    但是,Library API 不提供从媒体项到其所属专辑的映射。你可以file a feature request 并描述你的用例,如果这是你所缺少的东西。请务必描述您将如何使用此功能。

    如果您想查看特定媒体项目(例如您通过搜索找到的媒体项目)是否属于专辑的一部分,则需要比较它们的 ID。例如,您可以列出相册的内容并检查您感兴趣的媒体项的 ID 是否是响应的一部分。

    【讨论】:

    • 您好,非常感谢您的回复。但是,我也想知道原因,为什么我不能将照片添加到免费存储中?大多数用户都在使用免费存储服务。如果我有一个应用程序可以从谷歌照片创建高清分辨率视频,它们可能会运行 15 个 1 GB 视频的存储空间。
    • 我使用 GET /albums 编写了一个简单的代码,然后使用 POST /mediaItems:search?albumId = 获取每个专辑的媒体项,然后将它们与 GET 返回的媒体项的完整列表交叉引用/媒体项目。它工作得相当好,但是我注意到共享项目 ID 存在问题。作为 albumId 搜索 (POST /mediaItems:search?albumId) 的一部分返回的共享项目的 ID 与完整列表 (GET /mediaItems) 返回的同一项目的 ID 不匹配。每个共享媒体项目似乎都在发生这种情况。此外,无法判断项目是否共享。有什么想法吗?
    • 对于账户 A 拥有的共享相册,如果从另一个账户 B 添加了一个媒体项,则在账户 A 的媒体项列表中将找不到它的 id。如果这样一个共享媒体项目然后保存在帐户 A 中,其 ID 与添加到共享相册的原始共享媒体项目的 ID 不匹配。如果没有某种指标来识别媒体项目是否属于另一个帐户,则很难将其过滤掉。
    【解决方案2】:

    是的,您可以获得特定专辑的媒体。

    请参阅此文档Listing album contents

    要列出相册中的所有媒体项目,请将 albumId 字段添加到您的搜索请求中。有关 albumId 的更多信息,请参阅列出专辑。如果 albumId 无效,则返回 Bad Request 错误。如果 ID 有效,但经过身份验证的用户的相册不存在,则返回 Not Found 错误。有关错误处理的更多详细信息,请参阅性能提示和最佳做法。

    POST https://photoslibrary.googleapis.com/v1/mediaItems:search
    Content-type: application/json
    Authorization: Bearer OAUTH2_TOKEN
    {
      "pageSize":"100",
      "albumId": "ALBUM_ID"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多