如何从c#谷歌驱动器下载文件?

时间:2017-03-13 17:45:06

标签: c# google-drive-api google-developers-console google-developer-tools

我正在尝试使用ASPSnippets.GoogleAP.dllGoogle.Apis.Drive.v3.dll从Google云端硬盘下载文件。但面临一些挑战。正在下载文件,但它存在于某些类型的奇怪HTML内容中。

我正在使用以下代码下载它:

GoogleConnect.ClientId = "xxxx.apps.googleusercontent.com";
GoogleConnect.ClientSecret = "xxxxxx";
GoogleConnect.RedirectUri = Request.Url.AbsoluteUri.Split('?')[0];
GoogleConnect.API = EnumAPI.Drive;
if (!string.IsNullOrEmpty(Request.QueryString["code"]))
    {
     string code = Request.QueryString["code"];
     string json = GoogleConnect.Fetch("me", code);
     GoogleDriveFiles files = new JavaScriptSerializer().Deserialize<GoogleDriveFiles>(json);

     //Remove the deleted files.
     var driveService = new DriveService();
     Label1.Text = theHiddenField1.Value;
     WebClient wb = new WebClient();
     wb.DownloadFile(theHiddenField1.Value, "C://" + fileName);
    }
    else if (Request.QueryString["error"] == "access_denied")
     { 
       ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('Access denied.')", true);                           
     }
      else
      {   
        GoogleConnect.Authorize("https://www.googleapis.com/auth/drive.readonly");              
       }  

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我不是C#开发人员,但如果您使用的是Google.Apis.Drive.v3,那么这是Google Drive API的最新版本。我没有看到您的代码中有任何部分引用Google APIs Client Library for .NET,但这是与现代Google API交流的推荐方式。

如果您已安装它,请查看C# quickstart sample for the Drive API。然后查看文档中Download Files page上的C#/ .net示例,它应该引导您找到一个可行的解决方案。在您的其他评论中,您询问了如何传递身份验证令牌,因此如果您使用的是客户端库,则不必担心该部分。在该文档页面上,您将找到常规文件下载的示例,另一个用于导出Google文档(文档,表格,幻灯片)。

最后,有关其他参考,请参阅.NET reference docs for the Drive API.NET Google APIs Client Library developers guide