title: Using Google Drive V3 API and service account auth, WebViewLink is null
body: <p>I am using google drive v3 api to upload a file and then preview it in browser using web view link in the response. But web view link is coming null. When i was using v2, I was able to do it using alternate link. </p>
  
  <p>I have not set the parent ref so I am assuming as per the documentation, the file is stored in my drive folder(root) of service account. As I couldn't login to service account, so I shared the file with my existing test gmail account and it was shared. </p>
  
  <p>My question is how can I open the file in browser using <code>System.Diagnostics.Process.Start(newFile.WebViewLink);</code></p>
  
  <p>here is my code:</p>
  
  <pre><code>{
  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 
  }
  </code></pre>
  
  <p>here is the upload code:</p>
  
  <pre><code>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&lt;FilesResource&gt;() { 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;
          }
      }
  </code></pre>
  
  <p>Could anyone please guide me here?</p>