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依赖项。