Google 云端硬盘网络视图 link 在 Google API 资源管理器中检索到,但不在我的代码中

Google Drive web view link retrieved in Google API explorer, but not in my code

我有代码可以将文件上传到 Google 驱动器并设置适当的权限,以便域中的任何人都可以读取它们。

如果我使用 Google Drive API explorer 并输入文件 ID 并在“字段”文本框中输入“webViewLink”,那么当我执行请求时,我会看到类似这样的内容(实际 link混淆)...

{
 "webViewLink": "https://drive.google.com/file/d/abcdef123456/view?usp=drivesdk"
}

在私人浏览器中输入 link window 允许我按预期查看文件。

但是,如果我尝试在我的 C# 代码中获取 link...

FilesResource.GetRequest request = _service.Files.Get(fileId);
request.Fields = "webViewLink";
var file = await _service.Files.Get(fileId).ExecuteAsync();

...那么 file.WebViewLink 属性 总是空白的。查看网络选项卡,似乎是如果使用相同的参数调用相同的 API,

有人有什么想法吗?我已经仔细检查过,我在 API 资源管理器和我的代码中使用相同的 Google 帐户(我知道这一点,否则我将无法看到驱动器中的其他文件)

您的 C# 代码设置了一个请求并在其上设置了 Fields,但随后您再次调用了 _service.Files.Get(fileId),因此您忽略了使用额外的 [=10] 设置的原始请求=],因此它使用默认值 Fields 而不是您设置的值。

尝试var file = await request.Get(fileId).ExecuteAsync();,这样它将使用为该请求设置的Fields