Javascript google drive JS API nextpageToken无效

Javascript google drive JS API nextpageToken无效,javascript,api,google-drive-api,Javascript,Api,Google Drive Api,我只是遵循API文档,使用JSAPI进行了简单的查询 并获取错误400:下一个GetOken的无效值 gapi.load('client', function(){ gapi.client.load('drive', 'v3', function(){ gapi.client.init({} ).then(function(){ gapi.client.drive.files.list({ 'q'

我只是遵循API文档,使用JSAPI进行了简单的查询 并获取错误400:下一个GetOken的无效值

gapi.load('client', function(){
    gapi.client.load('drive', 'v3', function(){
        gapi.client.init({}
        ).then(function(){
            gapi.client.drive.files.list({
                'q'         : "name contains 'nv'",
                'pageSize'  : 10,
                'fields'    : "nextPageToken, files(id, name, webContentLink, folderColorRgb, thumbnailLink, description)",
                'orderBy'   : 'modifiedTime desc',
            }).then(function(respo){
                var token = respo.result.nextPageToken;
                gapi.client.drive.files.list({
                    'fields' : '*',
                    'pageToken' : token
                }).then(function(result){console.log(result.result);})
            })
        })
    })
}) 
从第一个查询返回的令牌是ok的,已满。 但在下一个查询中,它就错了

找不到令牌的格式,所以我无法检查它是否正确


p、 美国测试开发人员控制台,得到令牌,在下一个查询中得到相同的错误。

我简直不相信这一点

谷歌做出了如此愚蠢的事情

问题是它需要在下一个查询中写入,而不是pageToken,而是nextPageToken,并且它正在工作

检查了几次,确实如此

在文档中,它写错了,在它们的控制台中也是如此


可耻

我简直不相信这个

谷歌做出了如此愚蠢的事情

问题是它需要在下一个查询中写入,而不是pageToken,而是nextPageToken,并且它正在工作

检查了几次,确实如此

在文档中,它写错了,在它们的控制台中也是如此


可耻

这是我发现的在Google Drive JavaScript操作中尝试分页的最高结果。他们应该在文档中显示一个示例,但我在那里找不到。然而,Facebook就有这样的例子。无论如何,要在其框架中执行分页,请执行以下操作:

//Global variable to hold token pointer
var NextPageToken = '';

function GetFiles() {
   gapi.client.drive.files.list({
     'pageSize': 25,
     'q': "mimeType contains 'image/'",
     'fields': "nextPageToken, files(id, name)"
   }).then(function (response) {
              var files = response.result.files;
              // if response.result.nextPageToken exists, use it
              if (response.result.nextPageToken) {
                 NextPageToken = response.result.nextPageToken;                        
              } else {
                 NextPageToken = false;
              }
           });
    }

function GetNextSetOfImages() {
        gapi.client.drive.files.list({
            'pageSize': 25,
            'q': "mimeType contains 'image/'",
            'pageToken': NextPageToken,
            'fields': "nextPageToken, files(id, name)"
        }).then(function (response) {
              var files = response.result.files;
              // if response.result.nextPageToken exists, use it
              if (response.result.nextPageToken) {
                 NextPageToken = response.result.nextPageToken;                        
              } else {
                 NextPageToken = false;
              }
           });
    }

这是我发现的在Google Drive JavaScript操作中尝试分页的最高结果。他们应该在文档中显示一个示例,但我在那里找不到。然而,Facebook就有这样的例子。无论如何,要在其框架中执行分页,请执行以下操作:

//Global variable to hold token pointer
var NextPageToken = '';

function GetFiles() {
   gapi.client.drive.files.list({
     'pageSize': 25,
     'q': "mimeType contains 'image/'",
     'fields': "nextPageToken, files(id, name)"
   }).then(function (response) {
              var files = response.result.files;
              // if response.result.nextPageToken exists, use it
              if (response.result.nextPageToken) {
                 NextPageToken = response.result.nextPageToken;                        
              } else {
                 NextPageToken = false;
              }
           });
    }

function GetNextSetOfImages() {
        gapi.client.drive.files.list({
            'pageSize': 25,
            'q': "mimeType contains 'image/'",
            'pageToken': NextPageToken,
            'fields': "nextPageToken, files(id, name)"
        }).then(function (response) {
              var files = response.result.files;
              // if response.result.nextPageToken exists, use it
              if (response.result.nextPageToken) {
                 NextPageToken = response.result.nextPageToken;                        
              } else {
                 NextPageToken = false;
              }
           });
    }

我发现后续页面请求必须与第一个请求具有相同的“q”值,以避免出现HTTP 400错误。例如,如果第一个请求是:

   gapi.client.drive.files.list({
       'q'         : "name contains 'nv'",
       'pageSize'  : 10,
       'fields'    : "nextPageToken, files(id, name)"
   }).then(function(respo){
       ...
   }
后续请求也必须具有相同的“q”:

   gapi.client.drive.files.list({
       'q'         : "name contains 'nv'",
       'pageToken' : nextPageToken,
       'pageSize'  : 10,
       'fields'    : "nextPageToken, files(id, name)"
   }).then(function(respo){
       ...
   }

确保始终检查nextPageToken的有效性,因为在后续请求中输入空值将重新启动列表操作。

我发现后续页面请求必须具有与第一个请求相同的“q”值,以避免出现HTTP 400错误。例如,如果第一个请求是:

   gapi.client.drive.files.list({
       'q'         : "name contains 'nv'",
       'pageSize'  : 10,
       'fields'    : "nextPageToken, files(id, name)"
   }).then(function(respo){
       ...
   }
后续请求也必须具有相同的“q”:

   gapi.client.drive.files.list({
       'q'         : "name contains 'nv'",
       'pageToken' : nextPageToken,
       'pageSize'  : 10,
       'fields'    : "nextPageToken, files(id, name)"
   }).then(function(respo){
       ...
   }

确保始终检查nextPageToken的有效性,因为在后续请求中输入空值将重新启动列表操作。

回答非常好。文档中没有提到需要使用相同的参数重复查询。有人会认为,传递令牌就足以执行下一页的结果,但是,不,整个参数列表必须是相同的。回答很好。文档中没有提到需要使用相同的参数重复查询。有人会认为,传递令牌就足以执行下一页的结果,但是,不,整个参数列表必须是相同的。这似乎是正确的答案。即使是我的linter也告诉我这是错误的,但是pageToken是唯一一个不会让它在运行时抛出错误的。抢手货非常有趣。这似乎是正确的答案。即使是我的linter也告诉我这是错误的,但是pageToken是唯一一个不会让它在运行时抛出错误的。抢手货非常有趣。