隐藏Google文档中的共享选项

时间:2015-07-28 13:32:53

标签: c# google-drive-api google-api-dotnet-client service-accounts

我使用.NET SDK for google drive api在Google云端硬盘上上传/创建文件。一切正常,我可以根据我的业务逻辑,如作家,读者,评论者或所有者给予用户许可。但是我想隐藏除了所有者之外的所有人的共享按钮,因为我的业务逻辑应该决定哪个文件应该与谁共享以及何时共享。

以下是共享文档的代码:

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是服务帐户的实例。任何指针都会有很大的帮助。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我已将此作为增强功能提出,并得到了响应。所以在谷歌驱动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