在 Google 文档中隐藏共享选项

Hide share option from Google doc

我正在使用 google 驱动器 api 的 .NET SDK 在 Google 驱动器上上传/创建文件。一切正常,我可以根据我的业务逻辑向用户授予权限,例如作者、reader、评论者或所有者。但我想对除所有者以外的所有人隐藏共享按钮,因为我的业务逻辑应该决定哪个文件应该与谁共享以及何时共享。

分享文档的代码如下:

try
{
 Google.Apis.Drive.v2.Data.Permission permission = new Google.Apis.Drive.v2.Data.Permission();
switch (role)
            {
                case GoogleRoles.WRITER:
                case GoogleRoles.READER:
                case GoogleRoles.OWNER:
                    {
                        permission.Role = role;
                        permission.Value = userEmail;
                        permission.Type = "user";
                        break;
                    }
                case GoogleRoles.COMMENTER:
                    {
                        permission.Role = GoogleRoles.READER;  //Need to assign role before we assign the additional role of commenter.
                        List<String> additionalRoles = new List<string>();
                        additionalRoles.Add(GoogleRoles.COMMENTER);
                        permission.AdditionalRoles = additionalRoles;
                        permission.Type = "user";
                        permission.Value = userEmail;
                        break;
                    }
            }

PermissionsResource.InsertRequest insertRequest = DriveService.Permissions.Insert(permission, fileId);
insertRequest.SendNotificationEmails = true;
insertRequest.Execute();

其中 DriveService 是服务帐户的一个实例。任何指针都会有很大的帮助。

遗憾的是,Drive API 尚不支持禁用共享或禁用下载的功能。请在此处提交功能请求:https://code.google.com/a/google.com/p/apps-api-issues/issues/entry?template=Feature%20request&labels=Type-Enhancement,API-Drive

我将此作为增强功能提出,也得到了回应。所以在 Google 驱动器 API 中它不是权限的一部分,但这些是文件本身的属性,所以我们需要设置他的属性而不是权限,如:

File.LabelsData labels = new File.LabelsData();
labels.Restricted = true;
File body = new File();
body.Labels = labels;
body.WritersCanShare = false;

已经解决了Share的问题,但是下载问题并没有通过上述修改得到解决。有关详细信息,请访问 https://developers.google.com/drive/v2/reference/files