- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 google drive v3 api 上传文件,然后使用响应中的 WebView 链接在浏览器中预览它。但是 WebView 链接即将变为空。当我使用 v2 时,我可以使用备用链接来完成。
我没有设置父引用,所以我假设根据文档,该文件存储在我的服务帐户的驱动器文件夹(根目录)中。由于我无法登录到服务帐户,因此我与现有的测试 gmail 帐户共享了该文件,并且它已被共享。
我的问题是如何使用 System.Diagnostics.Process.Start(newFile.WebViewLink);
这是我的代码:
{
File fileInGoogleDrive = Utils.uploadToDrive(service, pathOfTheFileToBeUploaded, "root");
Permission toShare = new Permission();
toShare.EmailAddress = "xyz@gmail.com";
toShare.Type = "user";
toShare.Role = "reader";
PermissionsResource.CreateRequest createRequest = service.Permissions.Create(toShare, fileInGoogleDrive.Id);
createRequest.Execute();
return fileInGoogleDrive.WebViewLink; //THIS IS NULL
}
上传代码如下:
public static File uploadToDrive(DriveService _service, string _uploadFile, string _parent = "root")
{
if (!String.IsNullOrEmpty(_uploadFile))
{
File fileMetadata = new File();
fileMetadata.Name = System.IO.Path.GetFileName(_uploadFile);
fileMetadata.MimeType = GetMimeType(_uploadFile);
//fileMetadata.Parents = new List<FilesResource>() { new FilesResource() {}};
try
{
byte[] byteArray = System.IO.File.ReadAllBytes(_uploadFile);
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
FilesResource.CreateMediaUpload request = _service.Files.Create(fileMetadata, stream, GetMimeType(_uploadFile));
request.Upload();
return request.ResponseBody;
}
catch (System.IO.IOException iox)
{
// Log
return null;
}
catch (Exception e) // any special google drive exceptions??
{
//Log
return null;
}
}
else
{
//Log file does not exist
return null;
}
}
有人可以在这里指导我吗?
最佳答案
只是想在 C# 中发布上面的语法。从谷歌文档中,它说我们必须获取文件,然后使用 Fields 属性进行请求。“获取适用于 .net 的 google drive v3 api 中的字段”
File resultFile = null;
FilesResource.ListRequest listRequest = _service.Files.List();
/* Specify camelCase format to specify fields. You can also check in debug mode the files properties before requesting which will be null. All properties will be capitalized so make th efirst letter as small(camel case standard)*/
listRequest.Fields = "files(id, webViewLink, size)";
var files = listRequest.Execute().Files;
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
if (file.Id == _fileId)
{
Console.WriteLine("{0}, {1}, {2}", file.Id, file.WebViewLink, file.Size);
resultFile = file;
}
}
}
关于c# - 使用 Google Drive V3 API 和服务帐户身份验证,WebViewLink 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35711489/
上周可通过 webViewLink 查看的公共(public)文件夹的 URI 现在返回 HTTP 404 - 未找到错误。 文件夹仍然是公开的,包含 index.html 并列在此测试脚本中: ht
我刚刚开始尝试使用 Google Drive API。使用快速入门指南,我设置了身份验证,我可以打印我的文件列表,甚至可以复印。一切都很好,但是我在尝试从 Drive 上的文件访问数据时遇到了问题。特
我正在尝试获取 Google 文档的 webContentLink 和 webViewLink。目前,我的代码如下所示: http = decorator.http() service = disco
使用来自 Google (0.60) 的最新版本的 PHP api,代码示例来自 google developer page似乎可以工作,只是在函数末尾使用“print_r($createdFile)
我正在使用 google drive v3 api 上传文件,然后使用响应中的 WebView 链接在浏览器中预览它。但是 WebView 链接即将变为空。当我使用 v2 时,我可以使用备用链接来完成
我正在使用需要用户身份验证才能访问已登录用户的 Google Drive 上的私有(private)文件夹的 Intranet。图像从文件夹中提取并使用图像的 WebViewLink 显示在 Intr
我是一名优秀的程序员,十分优秀!