具有较少依赖性的Google Drive SDK的替代方案

时间:2014-01-31 16:52:42

标签: c# google-drive-api google-api-dotnet-client

我想在我的C#桌面应用程序中使用Google Drive API。但是,我发现NuGet上的官方Google SDK有更多的依赖关系,而不是我喜欢(将它添加到我的VS2010项目中增加了10个额外的NuGet包)。我担心随着我的解决方案的发展,这些依赖关系会与其他依赖关系冲突。

  1. 这种方法可以替代使用较少的依赖关系吗?
  2. 我可以使用其他OAuth 2.0库吗?还是我必须使用Google的OAuth sdk? Google的OAuth 2.0实施有什么特别之处会妨碍使用它另一个OAuth 2.0库?

2 个答案:

答案 0 :(得分:2)

  

这种方法是否有替代方案可以减少依赖性?

您当然可以使用HttpClient结合Drive API编写自己的API。 API使用简单的Get / Post / Put / Delete / Patch http方法来更改 google drive 中的文件。

  

我可以使用其他OAuth 2.0库,还是必须使用Google的OAuth sdk?

取决于。如果您自己编写,则可以使用(或编写)任何OAuth客户端。 http方法必须在请求中包含OAuth信息,因此编写自己的信息会为您提供该类型的访问权限。

如果您正在寻找实际的产品推荐,那将是off topic question (do not ask #5) for stack overflow

<强>更新

让我们谈谈OAuth如何在非常高的层面上发挥作用。 Once the user authorizes your code to impersonate (for lack of better terminology), you get a Authorization Code, which you use to get an Exchange Token

令牌是重要的部分。如果预构建框架没有任何方法可以指定令牌是什么并不重要。

如果您想自己验证您的请求,请使用C#,you make a call to access Google Drive API, you'd want to add the Authorization to the Google Headers (or QueryString, but I personally don't like to use the Querystring)

GET /plus/v1/people/me HTTP/1.1
Authorization: Bearer 1/fFBGRNJru1FQd44AzqT3Zg
Host: googleapis.com

答案 1 :(得分:1)

滚动你自己并不是太繁重。

此页面https://developers.google.com/accounts/docs/OAuth2上记录了所有http调用,并结合了特定于您的方案的子页面(例如嵌入式,Web等)。

一旦您认为自己理解了它,请访问https://developers.google.com/oauthplayground/的优秀Oauth游乐场并观看http流量。

如果您可以拨打与您在操场上看到的相同的http电话,那么您就是钻石。

大部分工作都是处理您的应用可能遇到的各种状态: -

  • 无效授权(例如,Google已过期刷新令牌)
  • 令牌过期
  • 超时
  • 用户拒绝了身份验证

您可以在http级别进行选择。您可以直接使用C#的http,也可以使用Erik提到的Google http库。