python - Google Photos API - 列表库内容 - “请求包含无效参数” - 最近更改?
问题描述
谷歌照片最近在 8 月 1 日对他们的 API 进行了更改(我认为)。他们将列表库内容从 POST 更改为 GET。现在我的代码不再有效。 https://developers.google.com/photos/library/guides/list
这是代码的快照:
payload = {"pageSize" : "500", "pageToken" : parsed_json['nextPageToken']}
#payload = {"pageSize" : "500"}
#payload = {"pageToken" : parsed_json['nextPageToken']}
myResponse = requests.get('https://photoslibrary.googleapis.com/v1/mediaItems', headers={"Content-type" : "application/json", "Authorization" : "Bearer " + credentials.access_token}, params=payload)
parsed_json = json.loads(myResponse.content)
此代码给我一个错误:“错误”:{“代码”:400,“消息”:“请求包含无效参数。”,“状态”:“INVALID_ARGUMENT”}
似乎如果我将两个参数传递给 GET 请求,我会收到错误消息。但是,如果我只将一个参数传递给 GET 请求,无论是 pageSize 还是 pageToken,它都可以正常工作。(该代码也包括在内,但被注释掉了)。
这一直很好,直到 8 月 1 日我认为谷歌做出了改变。
鉴于我是一名新程序员,我觉得我在这里遗漏了一些关键,但我根本不知道它是什么。
任何帮助将非常感激!
解决方案
我想我知道你的问题是什么。文档中有一句话说:“nextPageToken 只对同一个请求有效。如果任何参数发生变化,以前使用的 nextPageToken 不应该在同一个请求中使用。”
我遇到了同样的问题,因为我加载的第一个 pageSize 是 500,然后我想加载 200 个项目的页面(以获得更平滑的滚动)。它起初有效,但后来发生了变化,它不再有效(INVALID_ARGUMENT)。
也许您遇到此问题是因为您制作的第一个 GET(给您令牌的那个)与您使用令牌制作的页面大小不同。
顺便说一句,我仍然使用 POST 来列出库内容,因为我会加载专辑内容,而不提供专辑 ID,它似乎工作正常。
推荐阅读
- json - 使用 Apache Spark 将表序列化为嵌套 JSON
- php - Symfony:未知的“humanize_bytes”过滤器
- android - 如何在 Android Firebase 中运行事务
- javascript - 无法调用类型缺少调用签名 TypeScript 错误的表达式
- c# - 如何按照 MVVM 模式绑定整个数据网格以查看 MVVM
- c++ - free() : MPI_Finalize() 期间的无效指针
- wireshark - 如何删除wireshark中的零数据包(空流)记录
- c# - 正则表达式拼图查找所有有效的字符串组合
- scala - 进行模式匹配时的Scala类型不匹配
- r - 从2个矩阵R中找到每一行的最小值