0

我正在尝试使用ASPSnippets.GoogleAP.dll和从 Google Drive 下载文件Google.Apis.Drive.v3.dll。但面临一些挑战。正在下载文件,但它包含某种奇怪的 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");              
       }  

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

4

1 回答 1

0

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

如果您已安装它,请查看Drive API 的 C# 快速入门示例。然后查看文档中下载文件页面上的 C#/.NET 示例,它应该会引导您找到可行的解决方案。在您的另一条评论中,您询问了传递身份验证令牌的问题,因此如果您使用的是客户端库,则不必担心那部分。在该文档页面上,您会找到一个用于常规文件下载的示例和另一个用于导出 Google 文档(文档、表格、幻灯片)的示例。

最后,作为其他参考,这里是Drive API 的 .NET 参考文档.NET Google APIs 客户端库开发人员指南

于 2017-03-16T06:33:32.220 回答