如果没有付费帐户,无法从 Google Apps 脚本访问 Google 云端硬盘?

问题描述 投票:0回答:2

我似乎无法使用 Google Apps 脚本驱动器服务访问我的 Google 驱动器。 这:

DriveApp.getFolderById('1Evf...Kein')
不返回任何值,只是 null。

例如,我的库中的这个函数曾经可以工作,但现在在调用 DriveApp 时不返回任何内容:

function getFileByNameInFolder(folderID, fileName) {
  var folder = DriveApp.getFolderById(folderID);
  var files = folder.getFiles();
  
  console.log(folder);
  console.log(files);
  while (files.hasNext()) {
    console.log(file.getName());
   var file = files.next();
    if (file.getName() == fileName) {
     return file; 
    }
  }
  return undefined;
}

控制台结果:

对 DriveApp 服务的任何使用都会被阻止。

我尝试使用独立的应用程序脚本和纸张装订的应用程序脚本 - 不起作用。

我确信它对于我过去的项目来说是有效的!

仔细阅读,Google 是否有可能阻止使用这些服务,除非您使用这些服务的付费帐户(Google Workspaces 或 Google Cloud)?

还是我还漏掉了其他东西?

google-apps-script google-drive-api
2个回答
0
投票

您的 DriveApp 服务并未停止工作。根据你的代码, 预计

console.log(folder);
console.log(files);
将在执行日志中显示
{}
,因为您没有使用 console.log(formatOrObject, value) 在执行日志中成功记录 Apps 脚本对象。

使用控制台显示

{}
console.log(folder);
并不意味着 DriveApp 服务不工作。您可以通过将其替换为
Logger.log(folder)
来验证这一点。您的代码失败的主要问题是因为您调用了
console.log(file.getName());
,而
file
变量尚未使用 Folder 对象定义/初始化(
files.next()
的返回)。

应该是这样的:

  while (files.hasNext()) {
    
    var file = files.next();
    console.log(file.getName());

    if (file.getName() == fileName) {
     return file; 
    }
  }

0
投票

我的问题是 DriveApp 服务停止工作。

嘿,这个问题有解决办法吗?我可以运行我的脚本,但同事无法运行。我尝试为它们进行调试 - MyDrive 已作为我的文件夹正确返回,但它们的相同代码返回 undefined

© www.soinside.com 2019 - 2024. All rights reserved.