【问题标题】:How to authorize request to a Google Calendar using OAuth access token?如何使用 OAuth 访问令牌授权对 Google 日历的请求?
【发布时间】:2014-06-04 04:41:49
【问题描述】:

我阅读了有关 OAuth 的信息,因此了解了基本原则。如果我有访问令牌和日历 ID,我似乎无法获得如何授权对 Google 日历 API(我使用的是 v3)的请求。
我工作的应用程序应该将数据写入我们的数据库和谷歌日历。因此,当用户授权我的应用访问他的日历时,我会返回一个访问令牌和一个日历 ID。我的问题是我接下来要做什么?
我阅读了十多篇关于该主题的文章,其中只有一篇有使用 ASP.NET MVC 4 的 a complete example - 但问题是它使用了谷歌未列出的过时 NuGet 包。尝试移植它,但类名、方法名和参数列出了所有更改,所以现在我不知道该怎么办。
当然,我看到了关于在 ASP.NET MVC 中使用 OAuth 的 Google 文档,但这对我没有多大帮助,因为我不知道将访问令牌放在哪里。

【问题讨论】:

    标签: .net oauth google-calendar-api


    【解决方案1】:

    如果您使用的是不记名令牌,您的代码应该类似于:

    var webClient = new WebClient();
    webClient.Headers.Add("Authorization", "Bearer " + AccessToken);
    result = webClient.UploadString(Url, "POST", PostData);
    

    原始请求看起来像(忽略 POST/GET 差异):

    GET /calendar/v3/users/me/calendarList/{calendarId} HTTP/1.1
    Host: www.googleapis.com
    Content-length: 0
    Authorization: Bearer <bearer-token>
    

    我建议使用 Google OAuth 2.0 Playground 进行测试以熟悉 API。

    【讨论】:

    • 使用普通 .NET,我期待使用 Google API 或 DotNetAuth 库
    • Google example in VB。对于如此简单的 API,我个人认为 Google 代码非常臃肿且过于复杂。
    • 该示例展示了一种无需访问令牌即可访问 Google 帐户的方法。啊,我现在真的很傻
    • 一般来说,DotNetAuth 库(据我所知)用于使用 OAuth 进行身份验证,而不是您可以插入另一个 .Net 框架并立即使用的东西。这就是我推出自己的 OAuth2 身份验证和 Google API 框架的原因,我花了更少的时间让它工作,然后试图弄清楚如何让这些框架工作。
    猜你喜欢
    • 2017-06-09
    • 2018-06-11
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2011-11-16
    • 2011-02-22
    相关资源
    最近更新 更多