如何解决NextPageToken给出无效的输入错误400-Google Directory API ChomeDevices
我必须从Google工作区(Gsuite)中提取25万本Chromebook,我正在使用Admin Directory API从Google检索JSON数据。
响应以200条记录的块形式返回,响应中包含nextPageToken
,我使用该下一页标记来检索下200条记录,依此类推。
一个小时后,使用上一个请求中附加的nextPageToken
,但是Google返回错误400,
{错误代码:400,“消息” =>“无效的输入:CMiJhq7-5ewCEp0BCm737N8GN ......”},
注意:谷歌称其为无效字符串“ CMiJhq7-5ewCEp0BCm737N8GN ......”是nextPageToken。
为什么会这样? nextPageToken会在1小时后过期吗?
我的代码段:
query_list = {
'maxResults' => 200,'access_token' => access_token,'pageToken' => next_page_token
}
HTTParty.get(endpoint_url,query: query_list)
解决方法
发送初始请求时,将创建nextPage令牌。使用此令牌是为了从请求中获取下一批行。
此令牌旨在立即使用,因为如果等待很长时间,与初始请求相关的数据可能会更改。
是的,下一页令牌确实会过期,我实际上希望它们在不到一个小时的时间内过期。我还想知道,下一页令牌在您第一次使用后是否还会过期?
如果您想再次发出相同的请求,我建议您这样做,并在小时后为您建立新的下一页令牌。
,我不得不改变方法,最初,我从Google API中获取了200个块,执行了一些耗时的处理,然后将其输入到数据库中(数据库密集型任务),然后请求了接下来的200个块,依此类推。一个小时后,Google发送的最后一个nexttoken无效。
因此,现在我获取200个块,将它们以JSON格式保存到我的数据库中,而无需执行任何数据库密集型任务,请求下200个,依此类推。在nextPageToken无效之前,我能够在大约56分钟内从Google提取300K Chromebooks JSON数据。
我现在正在处理数据库中存在的JSON数据,而没有网络开销或任何Google API依赖项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。