Cetain google 不导入 C# 的日历事件

Cetain google calendar events not importing C#

我构建了一个能够导入 Google 日历事件的日历应用程序。 在某些情况下,活动会 return 完美举办。但是,有些事件根本没有 return。我无法缩小可能导致这些问题的原因。

有时会出现在某些 Google 'calendars' 上,我认为这可能是由于这些特定日历上的安全预防措施,但我找不到绕过这些问题的方法。

这是我的代码:

var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
    new ClientSecrets
    {
        ClientId = "id",
        ClientSecret = "secret",
    },
    new[] { CalendarService.Scope.Calendar },
    accountEmail,
    CancellationToken.None).Result;

var service = new CalendarService(new BaseClientService.Initializer
{
    HttpClientInitializer = credential,
    ApplicationName = "appname",
});

EventsResource.ListRequest request = service.Events.List(calendarid);

Events events = request.Execute();

foreach (var eventItem in events.Items)
{
    Console.WriteLine(eventItem.Summary);
}

它不会从名为 'Supplier confirmed dates'

的日历中导入所有这些数据

但它会从名为“贸易日记”的日历中导入数据

但是对于另一个日历,它会导入一些事件而不是其他事件,这就是我感到困惑的原因。

欢迎提出任何建议。

我没有意识到可以从 Google 日历中 return 编辑的结果数量有限制。由于我的日历超过了“250”的限制,所以它 return 第一个“250”然后停止,所以我将此限制提高到“2500”(它可以 return 的最大值)并且它起作用了完美。

默认情况下 Events: list 每页最多显示 250 个结果

  • 对于请求 won't import all this data 的日历,看起来可能存在超过 250 个事件,因此不会检索到所有事件
  • 在这种情况下,您可以
    • maxResults 设置为更高的值 - 最多 2500
    • 或通过将 pageToken 设置为您在第一个查询 response 中获得的 nextPageToken 的值来检索下一页