Google Photos API-列表库内容-“请求包含无效的参数”-最近更改?

时间:2018-08-05 12:07:43

标签: python google-api invalid-argument google-photos google-photos-api

Google图片最近在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,     “ message”:“请求包含无效的参数。”,     “状态”:“ INVALID_ARGUMENT”   }

似乎如果我将两个参数传递给GET请求,则会收到错误。但是,如果我仅将一个参数传递给GET请求,无论是pageSize还是pageToken,它都可以正常工作。 (该代码也已包含但已注释掉)。

在我认为Google进行更改之前,这一直有效到8月1日。

鉴于我是一名新程序员,我觉得我在这里缺少一些关键之处,但我根本不知道它是什么。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我想我知道您的问题是什么。文档中有一句话:“ nextPageToken仅对同一请求有效。如果更改了任何参数,则在同一请求中不应使用先前使用的nextPageToken。”

我遇到了同样的问题,因为我加载的第一个pageSize是500,然后我想加载200个项目的页面(滚动更流畅)。起初它起作用了,但是后来有了变化,不再起作用了(INVALID_ARGUMENT)。

也许您遇到了这个问题,因为您制作的第一个GET(给您令牌的那个)的pageSize与您使用令牌制作的GET的pageSize不同。

顺便说一句,我仍然使用POST来列出库内容,就像加载相册内容一样,而没有提供albumId,它似乎可以正常工作。