无论如何,是否可以通过使用 google sheet api 或 google 驱动器 api 来删除 google sheet 对已共享用户的访问权限等节点js?
Is there anyway to remove access of google sheet to already shared users by using google sheet api or google drive api , etc in node js?
我正在使用 google sheets api 以及 google 驱动器 api (node js) 我创建了 google sheet 通过使用服务帐户并与角色为 'reader' 的一封电子邮件“xyz@gmail.com”共享。但现在 5 分钟后,我想删除“xyz@gmail.com”的访问权限,这样它就不能被“xyz@gmail.com”访问。
注意:google sheet 的所有者是服务帐户。
下面是代码片段。
const auth = new google.auth.GoogleAuth({
keyFile: "private_keys.json", //the key file
//url to spreadsheets API
scopes: ["https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/drive"],
});
var body = {
'type': 'user',
'role': 'reader',
'emailAddress': 'xyz@gmail.com',
};
var drive=google.drive({version: 'v3',auth});
drive.permissions.create({
'fileId': spId, //sheetID returned from create sheet response
'resource': body,
}, function(err, response) {if (err) {
console.error('error-------', err);
return;
} else{
console.log(JSON.parse(JSON.stringify(response))) ;
}
});
我相信你的目标如下。
- 您想从使用 googleapis 的文件中删除
xyz@gmail.com
的权限 Node.js。
在这种情况下,下面的示例脚本怎么样?
示例脚本:
const spId = "###"; // Please set the file ID.
const email = "xyz@gmail.com"; // Please set the email address you want to delete the permission.
drive.permissions.list(
{ fileId: spId, fields: "permissions(emailAddress,id)" },
function (err, response) {
if (err) {
console.error("error-------", err);
return;
} else {
var permission = response.data.permissions.find(({ emailAddress }) => emailAddress == email);
if (permission) {
drive.permissions.delete({ fileId: spId, permissionId: permission.id },
function (err, response) {
if (err) {
console.error("error-------", err);
return;
} else {
console.log(JSON.parse(JSON.stringify(response)));
}
});
}
}
});
- 当此脚本为运行时,使用电子邮件地址搜索权限ID。并且,当找到权限时,删除权限。
参考文献:
我正在使用 google sheets api 以及 google 驱动器 api (node js) 我创建了 google sheet 通过使用服务帐户并与角色为 'reader' 的一封电子邮件“xyz@gmail.com”共享。但现在 5 分钟后,我想删除“xyz@gmail.com”的访问权限,这样它就不能被“xyz@gmail.com”访问。
注意:google sheet 的所有者是服务帐户。
下面是代码片段。
const auth = new google.auth.GoogleAuth({
keyFile: "private_keys.json", //the key file
//url to spreadsheets API
scopes: ["https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/drive"],
});
var body = {
'type': 'user',
'role': 'reader',
'emailAddress': 'xyz@gmail.com',
};
var drive=google.drive({version: 'v3',auth});
drive.permissions.create({
'fileId': spId, //sheetID returned from create sheet response
'resource': body,
}, function(err, response) {if (err) {
console.error('error-------', err);
return;
} else{
console.log(JSON.parse(JSON.stringify(response))) ;
}
});
我相信你的目标如下。
- 您想从使用 googleapis 的文件中删除
xyz@gmail.com
的权限 Node.js。
在这种情况下,下面的示例脚本怎么样?
示例脚本:
const spId = "###"; // Please set the file ID.
const email = "xyz@gmail.com"; // Please set the email address you want to delete the permission.
drive.permissions.list(
{ fileId: spId, fields: "permissions(emailAddress,id)" },
function (err, response) {
if (err) {
console.error("error-------", err);
return;
} else {
var permission = response.data.permissions.find(({ emailAddress }) => emailAddress == email);
if (permission) {
drive.permissions.delete({ fileId: spId, permissionId: permission.id },
function (err, response) {
if (err) {
console.error("error-------", err);
return;
} else {
console.log(JSON.parse(JSON.stringify(response)));
}
});
}
}
});
- 当此脚本为运行时,使用电子邮件地址搜索权限ID。并且,当找到权限时,删除权限。