注意:不限制域名。
如果我与个人电子邮件共享文档,则会向他们发送包含访问令牌的链接。他们可以使用此链接和此链接来访问受限制的电子表格。
但是,如果他们登录他们的个人Gmail帐户然后返回该链接,该文档将自动共享到他们的个人Gmail帐户。他们以及有权访问该Gmail帐户的任何其他人现在都可以访问电子表格,而无需导航到特定链接。
如何阻止此次自动分享?
答案 0 :(得分:1)
这很可能是一个简单的答案,但我希望它有所帮助。
可以通过控制枚举访问(https://developers.google.com/apps-script/reference/drive/access)和枚举权限(https://developers.google.com/apps-script/reference/drive/permission)来解决问题
我建议使用类似的东西:
var file = DriveApp.createFolder('NameOfFile');
file.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.VIEW);
通过这种方式,获取该文件访问权限的人只能通过他们的域电子邮件地址访问它,而不能访问他们的个人电子邮件地址。此外,域中的任何人都可以查找和查看它。这两个链接应该为您提供更多信息。
答案 1 :(得分:0)
您需要设置permission,如果脚本使用可以访问私有数据的服务,您将看到授权对话框。如果代码更改添加了新服务,您之前授权的脚本也会要求额外的authorization。所有对Google Drive API的请求必须由经过身份验证的用户授权。
HTTP请求
POST https://www.googleapis.com/drive/v2/files/fileId/permissions
在请求正文中,您可以设置所需的属性,例如role
和type
,其中允许的值为user, group, domain and anyone
。
private static Permission insertPermission(Drive service, String fileId,
String value, String type, String role) {
Permission newPermission = new Permission();
newPermission.setValue(value);
newPermission.setType(type);
newPermission.setRole(role);
try {
return service.permissions().insert(fileId, newPermission).execute();
} catch (IOException e) {
System.out.println("An error occurred: " + e);
}
return null;
}
您也可以尝试查看此document,其中讨论了如何设置共享权限。