1

我有一个用 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 密钥,我会为 Windows 服务使用哪种方法,其中我有 Google 用户的用户名和密码?- 简单的 API、OAuth2、服务帐户等。

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

4

1 回答 1

0

首先,您绝对不要使用最新版本的库。您可以从 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) Calendar API 支持 100,000 个请求/天。您可以在服务选项卡的 Google API 控制台中找到该信息。

3)绝对是OAuth2。在此处此处阅读更多信息。

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

于 2013-09-20T01:24:19.127 回答