Usando a API do Google Drive V3 e a autenticação da conta de serviço, o WebViewLink é nulo
Estou usando a API do Google Drive v3 para fazer upload de um arquivo e visualizá-lo no navegador usando o link de visualização da web na resposta. Mas o link da visualização na web está ficando nulo. Quando eu estava usando a v2, consegui fazê-lo usando o link alternativo.
Eu não defini a referência pai, portanto, conforme a documentação, o arquivo é armazenado na minha pasta da unidade (raiz) da conta de serviço. Como não consegui acessar a conta de serviço, compartilhei o arquivo com minha conta existente do gmail de teste e ele foi compartilhado.
Minha pergunta é como posso abrir o arquivo no navegador usandoSystem.Diagnostics.Process.Start(newFile.WebViewLink);
aqui está o meu código:
{
File fileInGoogleDrive = Utils.uploadToDrive(service, pathOfTheFileToBeUploaded, "root");
Permission toShare = new Permission();
toShare.EmailAddress = "[email protected]";
toShare.Type = "user";
toShare.Role = "reader";
PermissionsResource.CreateRequest createRequest = service.Permissions.Create(toShare, fileInGoogleDrive.Id);
createRequest.Execute();
return fileInGoogleDrive.WebViewLink; //THIS IS NULL
}
aqui está o código de upload:
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;
}
}
Alguém poderia me guiar aqui?