Google Drive .NET SDK版本3-共享链接

问题描述 投票:2回答:1

我有一个mp4视频文件,位于Google云端硬盘的“视频”文件夹中。我想使用C#sdk v3获取此文件的可共享链接。在我的代码中,我设置了文件(和文件夹)的权限:

string fileId = "..real..file..id..here.."
Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission();
permission.Type = "anyone";
permission.Role = "reader";
permission.AllowFileDiscovery = true;

PermissionsResource.CreateRequest request = _service.Permissions.Create(permission, fileId);
request.Fields = "id";
request.Execute();

_ service变量是一个DriveService对象。我可以看到该文件(和文件夹)的权限设置正确。然后,我尝试使用以下代码获取链接:

 FilesResource.ListRequest listRequest = _service.Files.List();
 List<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute().Files.ToList();
 Google.Apis.Drive.v3.Data.File myVideo = files.Single(f => f.Id == fileId);
 string shareableLink = myVideo.WebContentLink;

文件“ myVideo”已正确检索,但是WebContentLink属性为null。我在这里想念什么?

更新:AllowFileDiscovery = false;没有任何区别。

更新:设置权限后,您可以使用文件ID:https://drive.google.com/uc?id=..file..id..goes..here手动构造URL。>

我有一个mp4视频文件,位于Google云端硬盘的“视频”文件夹中。我想使用C#sdk v3获取此文件的可共享链接。在我的代码中,我设置了文件(和文件夹)的权限:...

c# google-drive-api
1个回答
1
投票

这是一个非常老的问题,没有答案。我面临类似的难题,即webcontentlink结果为NULL。解决方案是,您需要将“ webContentLink”放入请求的fields属性中,如下所示。

© www.soinside.com 2019 - 2024. All rights reserved.