我想在我的C#桌面应用程序中使用Google Drive API。但是,我发现NuGet上的官方Google SDK有更多的依赖关系,而不是我喜欢(将它添加到我的VS2010项目中增加了10个额外的NuGet包)。我担心随着我的解决方案的发展,这些依赖关系会与其他依赖关系冲突。
答案 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电话,那么您就是钻石。
大部分工作都是处理您的应用可能遇到的各种状态: -
您可以在http级别进行选择。您可以直接使用C#的http,也可以使用Erik提到的Google http库。