列出具有应用程序脚本或Drive api v3的用户的所有团队驱动器

时间:2018-02-07 14:22:16

标签: google-apps-script google-drive-api

我需要为具有应用脚本的用户列出所有团队驱动器,但我不知道如何制作它 我搜索了Drive API文档,但我找不到解决问题的方法。

有人帮我吗? 感谢

2 个答案:

答案 0 :(得分:0)

我有一个返回Team Drives列表的函数。我不久前把它放到了我的笔记中,不再能够归功于它最初的来源(它可能来自谷歌自己的文档)。如果格式不好,我很抱歉 - 我是stackoverflow的新手,无法弄清楚如何根据自己的喜好对其进行格式化:



/**
 * Purpose: Return a list of all Team Drive names
 */
function getGoogleTeamDrives() {
  try {
    var teamDrives = {},
        baseUrl = "https://www.googleapis.com/drive/v3/teamdrives",
        token = ScriptApp.getOAuthToken(),
        params = {
          pageSize: 10,
          fields: "nextPageToken,teamDrives(id,name)"
        };
    do {
      var queryString = Object.keys(params).map(function(p) {
        return [encodeURIComponent(p), encodeURIComponent(params[p])].join("=");
      }).join("&");
      var apiUrl = baseUrl + "?" + queryString;
      var response = JSON.parse(
        UrlFetchApp.fetch( apiUrl, {
          method: "GET",
          headers: {"Authorization": "Bearer " + token}
        }).getContentText());
      response.teamDrives.forEach(function(teamDrive) {
        teamDrives[teamDrive.id] = teamDrive.name;
        //Logger.log('Team Drive: ' + teamDrive.name);
      })
      params.pageToken = response.nextPageToken;
    } while (params.pageToken);
    return teamDrives;
  } catch (f) {
    Logger.log(f.toString());
  }
  return false;
}




答案 1 :(得分:0)

抱歉,我倾向于发表评论,但是,我没有足够的代表。 我没有测试过这个,所以如果它不起作用,就忽略我的答案。

在params对象的上面代码中添加:useDomainAdminAccess:true

由于我不是G Suite Admin,所以我不确定结果会是什么。

你可以随时使用"试试api"测试您的来电:https://developers.google.com/drive/v3/reference/teamdrives/get

祝你好运!