Google apps script 通过应用程序脚本中的URL获取调用Drive REST API版本3只提供默认属性

Google apps script 通过应用程序脚本中的URL获取调用Drive REST API版本3只提供默认属性,google-apps-script,google-drive-api,Google Apps Script,Google Drive Api,我正在通过应用程序脚本中的URL获取调用Drive REST API版本3。我正在调用文件列表方法并查询文件。查询正在工作,但我只获得api响应中文件的默认属性。如果我使用fields参数来获取更多字段,它将被忽略 var retVal =[]; var baseUrl = "https://www.googleapis.com/drive/v3/files"; var token = ScriptApp.getOAuthToken(); var options

我正在通过应用程序脚本中的URL获取调用Drive REST API版本3。我正在调用文件列表方法并查询文件。查询正在工作,但我只获得api响应中文件的默认属性。如果我使用fields参数来获取更多字段,它将被忽略

   var retVal =[];
    var baseUrl = "https://www.googleapis.com/drive/v3/files";
    var token = ScriptApp.getOAuthToken();

    var options = {
    method: "GET",
    headers: {"Authorization": "Bearer " + token},
   }

 var maxResults = 100;

 var params = {
 q: query, 
 pageSize: maxResults,
 fields: 'nextPageToken,incompleteSearch,files(kind,id,name,mimeType,starred,trashed)',
 };

 do {      

  var queryString = Object.keys(params).map(function(p) {
    return [encodeURIComponent(p), encodeURIComponent(params[p])].join("=");
  }).join("&"); 

  var apiUrl = baseUrl + "?" + queryString;

  Logger.log(apiUrl);

  var response = JSON.parse(UrlFetchApp.fetch( apiUrl,
  options).getContentText());

  //Logger.log(response);

  response.files.forEach(function(fileObj) {       
    retVal.push(fileObj);
  })

    params['pageToken'] = response.nextPageToken;

 } while (params.pageToken);

 Logger.log(retVal);
 return retVal
编码查询:

来自API的测试结果:[{kind=drive#file,name=Kopie von test/Blub 33,id=1otbd78bn7r7xjo6teayzme5cjwdgrmt,mimeType=application/json},{kind=drive#file,name=test/Blub 33,id=12IpttBvSY-Z31ueNqG_dmb46dxudh5cl,mimeType=application/json},{kind=drive#file,name=test/Blub/Blub 33,id=1fkyqdftvsy-Z31ueNqG#-jjjjjjjjv4; 4vjson,id=2xjjb4jjjjjjjjjjjj]


有人能帮助解释为什么api忽略字段参数吗?

尝试替换
&

var queryString = Object.keys(params).map(function(p) {
   return [encodeURIComponent(p), encodeURIComponent(params[p])].join("=");
}).join("&"); 

嗨,阿米特,谢谢你的回答。如果我按照建议更改源代码,我会得到一个http 400错误,返回的值无效。问题是,我没有从api返回的对象中获取“fields”参数I(fields:'nextPageToken,incompleSearch,files(kind,id,name,mimeType,starred,trashed)')的命名属性。您可以共享您的查询吗?当然:var query=“name contains'Test 33';我认为querz不可能是问题所在,因为我从api获得了结果,我只是没有得到文件项的所有字段…没有人可以帮助吗?尝试使用字段“*”查看是否所有字段都返回。