При вызове Drive REST API версии 3 через URL-выборку в скрипте приложений предоставляются только атрибуты по умолчанию - PullRequest
0 голосов
/ 24 июня 2019

Я вызываю Drive REST API Version 3 через URL-выборку в скрипте приложений.Я вызываю метод списка файлов и запрашиваю файлы.Запросы работают, но я получаю только атрибуты файлов по умолчанию в ответ 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

Кодированный запрос: https://www.googleapis.com/drive/v3/files?q=name%20contains%20%22Test%20%2F%20Blub%2033%22%20and%20not%20mimeType%20%3D%20%22application%2Fvnd.google-apps.folder%22%20and%20trashed%20%3D%20false&pageSize=100&fields=nextPageToken%2CincompleteSearch%2Cfiles(kind%2Cid%2Cname%2CmimeType%2Cstarred%2Ctrashed)&orderBy=folder%2CmodifiedTime%20desc%2Ctitle&supportsTeamDrives=false&includeTeamDriveItems=false

результаты теста из API: [{kind = drive # file, name= Kopie von Test / Blub 33, id = 1oTbd78Bn7R7Xjo6TEAAyZmE5CjwdgRMT, mimeType = application / json}, {kind = диск # файл, имя = Test / Blub 33, id = 12IpttBvSY-Z31ueNqG_Dud46} mjDemp = jD =}} j5 = j5} = j5} = j5} = j5} = j5} = M6#file, name = Test / Blub 33, id = 1FqKyDFT0bpp1JuAj3WeSV6AL-b12X4vb, mimeType = application / json}]

Может кто-нибудь помочь, почему API игнорирует параметр поля?

1 Ответ

1 голос
/ 24 июня 2019

Попробуйте заменить & на & при оценке значения queryString.

var queryString = Object.keys(params).map(function(p) {
   return [encodeURIComponent(p), encodeURIComponent(params[p])].join("=");
}).join("&"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...