1

我正在尝试将 .net 客户端库用于 Google 日历。我可以获取日历列表并获取日历上的事件列表。但是,每个日历我最多可以获得 250 个项目。我如何访问其余部分?我知道 Google.Apis.Calendar.v3.EventsResource.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.
}
4

2 回答 2

2

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

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

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

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 属性上设置它以获取更多事件...

于 2013-08-18T23:20:36.807 回答
0

MaxResult 限制为 2500 个项目,因此 10000 将不起作用

于 2014-05-13T11:31:27.863 回答