node.js - Nodejs 创建后,API Rest 谷歌驱动器文件夹不可见

标签 node.js google-api google-drive-api google-api-nodejs-client

通过 google api rest 创建文件夹时,我无法从 google Drive 控制台看到新创建的文件夹。该代码有效,它返回包含刚刚创建的文件夹的所有数据的 json。

function createFolder(nameProduct,folderId){
    console.log("nome folder : "+nameProduct);
    console.log("id parent : "+folderId);
    var fileMetadata = {
        'name': nameProduct,
        'mimeType': 'application/vnd.google-apps.folder',
        parent : [folderId]
      };
      let objFolder = {
        auth: jwToken,
        resource: fileMetadata,
        fields: 'id'
      }
      return new Promise((resolve,reject)=>{

      drive.files.create(objFolder).then(function(response) {
        // Handle the results here (response.result has the parsed body).
        console.log("Response", response);
        resolve(response);
        },
        function(err) { 
          // handle error here.
          reject(err);
          console.error("Execute error", err);
         });
      });
    }


var jwToken = new google.auth.JWT(
  key.client_email,
  null,
  key.private_key, ["https://www.googleapis.com/auth/drive"],
  null
);
jwToken.authorize((authErr) => {
  if (authErr) {
    console.log("error : " + authErr);
    return;
  } else {
    console.log("Authorization accorded");
  }
});

身份验证工作正常,我可以创建文件。我仅在文件夹方面遇到此问题。 为什么在 google 云端硬盘上看不到?该方法正确返回id

最佳答案

您似乎正在使用服务帐户进行身份验证。服务帐户是虚拟用户,他们有自己的 Google 云端硬盘帐户、Google 日历帐户以及可能更多帐户。

当您上传该文件时,它会上传到服务帐户 Google 云端硬盘帐户。服务帐户没有 Web View ,您只能通过编程方式对其进行访问。

选项:上传到您的帐户

在您的 Google 云端硬盘帐户上创建一个目录,与服务帐户共享该目录并上传到该目录。

选项:与您共享服务帐户目录

让服务帐户创建一个目录,然后授予自己对该目录的权限。然后您将能够在您的帐户中看到该目录。

注意

当服务帐户上传文件时,它将成为该文件的所有者,请确保您授予自己对这些文件的权限,否则您将无法访问它们。是的,您的云端硬盘帐户上可能有一个您无权访问的文件。 😉

关于node.js - Nodejs 创建后,API Rest 谷歌驱动器文件夹不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707059/

相关文章:

android - Google Drive GET_CONTENT Intent 读取文件

javascript - 如何在本地安装 Meteor Atmosphere 包以便对其进行修改?

google-api - Google API 服务帐户授权错误

c# - Google Drive 简单 API 访问授权失败

python - 使用 Drive v3 将电子表格导出为文本/csv 会出现 500 内部错误

google-api - 如何避免 Gmail API 集成的安全评估

node.js - NodeJS OSC 接收并分发到本地网络

node.js - 在 Node.js 中使用 express-jwt token 保护非 api (res.render) 路由

javascript - 如何将 javascript 函数定义为变量中的变量

javascript - 通过用 Electron/React/TS 编写的应用程序发送电子邮件