【问题标题】:Google Calendar API - Appropriate API Key Solution to Exceeded QuotasGoogle Calendar API - 超出配额的适当 API 密钥解决方案
【发布时间】:2013-12-29 09:29:16
【问题描述】:

我有一个用 C#.NET 开发的自定义 Windows 服务,它可以将用户的 Google 日历与内部日历同步。

根据 Google Calendar API 文档,我正在使用以下代码。我相信这被称为 ClientLogin 方法,可能会或可能不会被建议(我在 Google 文档中发现了相互矛盾的信息)。

CalendarService service = new CalendarService("Your app name");
service.setUserCredentials("username", "password");

这在测试中运行良好。现在事情已经转移到生产中,我收到诸如“用户已超出配额,当前无法执行此操作”和“用户今天修改了太多事件。请明天再试”之类的错误。这开始于一天多以前,并且一直如此。

我对此进行了大量研究,但仍有几点感到困惑。任何帮助将不胜感激。

  1. 每个用户的每日配额是多少?

  2. 那里的配额(真的很低吗?)是因为我的应用程序没有使用 API 密钥吗?

  3. 如果我要使用 API 密钥,对于我拥有 Google 用户的用户名和密码的 Windows 服务,我应该使用哪种方法? - 简单的 API、OAuth2、Service Account 等

仅供参考:我使用的是 Google 提供的 API .NET 库。如果我应该使用特定的身份验证方法,我将不胜感激使用通过 Google 提供的 .NET 库来说明实现的示例。

【问题讨论】:

    标签: google-calendar-api google-api-dotnet-client


    【解决方案1】:

    首先,您绝对不要使用最新版本的库。您可以从 NuGet 下载它。你应该下载以下两个包:

    1. https://www.nuget.org/packages/Google.Apis.Calendar.v3/
    2. https://www.nuget.org/packages/Google.Apis.Authentication/(请注意,在下一个版本中,我们将显着改进 OAuth2 流程,并支持 WP、Windows 8 应用程序)。

    关于您的问题:

    1-2) 日历 API 支持 100,000 个请求/天。您可以在服务选项卡的 Google API 控制台中找到该信息。

    3) 绝对是 OAuth2。阅读更多 herehere

    您可以在我们的示例存储库 (https://code.google.com/p/google-api-dotnet-client/source/browse/?repo=samples) 中找到具有当前 OAuth2 实现的代码示例

    【讨论】:

    • 非常感谢您提供的信息。我已经查看了 OAuth2 流程,似乎都需要我将用户定向到 Google URL 以授权后台服务对其帐户的访问。由于该服务只会访问员工的日历,如果我有用户凭据(以我自己的方式保护),有没有办法绕过这个?我了解 OAuth2 的目的是保护用户的凭据,但这似乎是一种常见的情况 - 尽可能简单地为您自己的员工访问公司电子邮件帐户。
    • 有一个特定的 OAuth2 场景,“密码凭据授予”,它使您能够这样做 (tools.ietf.org/html/rfc6749#section-4.3)。但是 AFAIK,我不确定 Google 服务器是否支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2020-10-13
    • 1970-01-01
    • 2018-03-04
    • 2021-06-14
    • 2019-08-05
    相关资源
    最近更新 更多