Javascript 共享文件可以';t使用drive.file作用域Google drive API访问(获取共享文件列表)

Javascript 共享文件可以';t使用drive.file作用域Google drive API访问(获取共享文件列表),javascript,google-drive-api,Javascript,Google Drive Api,文件共享成功,共享用户收到电子邮件通知,文件显示在用户google drive中,但当我们尝试使用API获取共享文件时,它不起作用 var SCOPES = ["https://www.googleapis.com/auth/drive.file", "profile"]; function createPermissions(fileId, body) { gapi.client.load("drive", "v3", function() { gapi.client.drive

文件共享成功,共享用户收到电子邮件通知,文件显示在用户google drive中,但当我们尝试使用API获取共享文件时,它不起作用

var SCOPES = ["https://www.googleapis.com/auth/drive.file", "profile"];

function createPermissions(fileId, body) {
  gapi.client.load("drive", "v3", function() {
    gapi.client.drive.permissions
      .create({
        fileId: fileId,
        resource: body
      })
      .then(function(res) {
        //console.log(res);
        Swal.fire("Success!", "File has been success shared!", "success");
        // do something
      })
      .catch(function(err) {
        //console.log(err);
        Swal.fire({
          icon: "error",
          title: "Oops...",
          text: "Something went wrong! Plese try agian later!!",
          footer: ""
        });
        // do something
      });
  });
}
上述代码工作正常,文件已成功共享,但当共享用户登录应用程序时,用户无法访问共享文件

是否有人建议/帮助解决上述问题


谢谢

我建议您以以下方式调用驱动器API:

//这是一个很好的测试范围
常量范围=[”https://www.googleapis.com/auth/drive"];
//此代码考虑到您已经完成了所有OAuth2.0过程
//正确连接到驱动器API
module.exports.init=异步函数(){
//创建驱动器服务
const drive=google.drive({version:'v3',oauth2Client});
//为用户创建权限
等待createPermissions(驱动器、null、null);
} 
//此函数将创建使用承诺共享文件的权限
函数createPermissions(驱动器、文件ID、正文){
//这些参数用于测试,超过您想要作为参数的值
fileId=fileId | |“您的文件id”;
身体=身体| |{
“角色”:“作者”,
“类型”:“用户”,
“电子邮件地址”:”user@domain"
};
//创建承诺并返回承诺中的值(如果需要)
返回新承诺((解决、拒绝)=>{
试一试{
//调用端点,如果没有错误,您将传递结果以解决
//作为你承诺的价值回报
返回drive.permissions.create({
fileId:fileId,
资源:机构
},
(错误,结果)=>{
if(err)拒绝(`Drive error:${err.message}`);
决心(结果);
});
}捕获(错误){
log(`承诺中有问题:${error}`);
}
});
}
我试过了,文件成功地共享给了我想要的用户。请记住,将您的身体打造为:

{
“角色”:“作者”,
“类型”:“用户”,
“电子邮件地址”:”user@domain"
};
文件 以下是有关驱动器API权限的更多信息的链接:


我建议您以以下方式调用驱动器API:

//这是一个很好的测试范围
常量范围=[”https://www.googleapis.com/auth/drive"];
//此代码考虑到您已经完成了所有OAuth2.0过程
//正确连接到驱动器API
module.exports.init=异步函数(){
//创建驱动器服务
const drive=google.drive({version:'v3',oauth2Client});
//为用户创建权限
等待createPermissions(驱动器、null、null);
} 
//此函数将创建使用承诺共享文件的权限
函数createPermissions(驱动器、文件ID、正文){
//这些参数用于测试,超过您想要作为参数的值
fileId=fileId | |“您的文件id”;
身体=身体| |{
“角色”:“作者”,
“类型”:“用户”,
“电子邮件地址”:”user@domain"
};
//创建承诺并返回承诺中的值(如果需要)
返回新承诺((解决、拒绝)=>{
试一试{
//调用端点,如果没有错误,您将传递结果以解决
//作为你承诺的价值回报
返回drive.permissions.create({
fileId:fileId,
资源:机构
},
(错误,结果)=>{
if(err)拒绝(`Drive error:${err.message}`);
决心(结果);
});
}捕获(错误){
log(`承诺中有问题:${error}`);
}
});
}
我试过了,文件成功地共享给了我想要的用户。请记住,将您的身体打造为:

{
“角色”:“作者”,
“类型”:“用户”,
“电子邮件地址”:”user@domain"
};
文件 以下是有关驱动器API权限的更多信息的链接:


文件共享工作正常,但主要问题是“我将应用程序的身份验证范围限制为每个文件(googleapis.com/Auth/drive.file)限制对应用程序创建或打开的文件的访问。这适用于我自己的应用程序创建的文件。当我与其他人共享此文件时,该文件可见并标识为我的应用程序创建的文件,但无法由我的应用程序打开:“找不到文件”。“谢谢,这是什么意思“该文件可见并标识为由我的应用程序生成,但无法由我的应用程序打开”?这就像说John Doe生成,他是该文件的所有者,但无法打开它。您是否检查过?您好,@alberto vielma,当共享用户登录到应用程序时。共享文件无法访问。API返回“未找到任何文件”。共享用户收到共享文件的电子邮件通知,当共享用户单击共享文件时,可以访问google drive中的电子邮件文件。Ie:Manoj(应用程序所有者)在谷歌应用程序(谷歌驱动API)中上传文件,并与“Rigal”共享文件。里加尔收到一封共享文件电子邮件通知,并且在他的谷歌硬盘中显示(访问)文件。但当Rigal登录应用程序(GoogleDriveAPI)时,他无法查看(访问)共享文件。谢谢,我现在好多了。当“userA”将文件共享给“userB”时,该文件将不会保存到userB的驱动器中。在这种情况下,您有两种选择:从原始文件创建副本或将所有权从userA转移到userB。不,文件保存在userB驱动器中,但问题是当userB登录应用程序(google drive API)时userB无法使用API访问文件。文件共享工作正常,但主要问题是“我将我的应用程序的身份验证范围限制为每个文件”(googleapis.com/auth/drive.file)来限制对应用程序创建或打开的文件的访问。对于