如何使用.net客户端库获取250多个日历项目

本文关键字:日历 项目 获取 何使用 net 客户端 | 更新日期: 2023-09-27 18:28:01

我正在尝试使用谷歌日历的.net客户端库。我可以获得日历列表和日历上的事件列表。然而,我每个日历最多可以得到250个项目。如何访问其余部分?我知道Google.Apis.Calendar.v3.EventsSource.ListRequest中的"pagetoken",但在下面的代码示例中,itemlistreq。PageToken保持为空,即使对于包含250个以上项目的日历也是如此。

var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization);
var initializer = new BaseClientService.Initializer();
initializer.Authenticator = auth;
var calsrv = new CalendarService(initializer);
//Get list of calendars
var list = calsrv.CalendarList.List().Execute().Items;
//Get entry list for each calendar
foreach(var cal in list)
{
    var itemlistreq = calsrv.Events.List(cal.Id);
    var itemlistex = itemlistreq.Execute();
    var itemlist = itemlistex.Items;
    //Here, itemlistreq.PageToken == null, even if itemlist has 250 entries.
}

如何使用.net客户端库获取250多个日历项目

您是否尝试更改请求的MaxResult属性?例如,尝试执行以下操作:

var itemlistreq = calsrv.Events.List(cal.Id);
itemlistreq.MaxResults = 10000;
var itemlistex = itemlistreq.Execute();
var itemlist = itemlistex.Items;

更新时间:尝试从Events类(在您的情况下为itemlistex)获取NextPageToekn属性

var itemlistreq = calsrv.Events.List(cal.Id);
var itemlistex = itemlistreq.Execute();
var token = itemlistex.NextPageToken; // THAT IS THE TOKEN YOU ARE LOOKING FOR
var itemlist = itemlistex.Items;

然后你可以在itemlistex上设置它。PageToken属性以获取更多事件。。。

MaxResult被限制为2500个项目,因此10000个项目将无法在中工作