【问题标题】:Google Drive .NET SDK version 3 - shareable linksGoogle Drive .NET SDK 第 3 版 - 可共享链接
【发布时间】:2016-05-17 00:46:05
【问题描述】:

我有一个 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 属性为空。我在这里错过了什么?

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

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

【问题讨论】:

标签: c# google-drive-api


【解决方案1】:

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

listRequest.Fields = "id, webContentLink";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多