Events: list未返回所有事件。
我在日历上看到很多活动,但是当我致电Events: list时,我只会收到其中一些。
这不是maxResults太低的问题。我把它设置为2500,最大值。我得到1251左右,我通过API删除了大约24,现在它返回1227.但是日历上还有一堆不会回来。
这也不是页面令牌的问题。我循环查看其余部分是否在下一个页面列表中,但是当我在第一页之后调用getNextPageToken时,它是空的。
我使用的可选参数是:
$optParams = array(
'maxResults' => 2500,
'singleEvents' => TRUE,
'pageToken' => $pageToken,
);
如果我将singleEvents设置为false或将其删除,Google会回复错误。
singleEvents boolean是否将重复事件扩展到实例中 并且只返回单个一次性事件和重复出现的实例 事件,但不是潜在的重复事件本身。可选的。 默认值为False。
当Google将GMail名称更改为G suites时,似乎开始发生这种情况。
我的代码如下:(当我var_dump $ calendarList时,我只得到1个日历。我使用类似的代码首先添加日历事件。)
$calendarList = $service->calendarList->listCalendarList();
$calendarListEntry = $service->calendarList->get('primary');
$continue = 1;
echo "reading the calendar for duplicate appointments<br>";
while ($continue == 1) {
$optParams = array(
'maxResults' => 2500,
'singleEvents' => TRUE,
'pageToken' => $pageToken,
);
$events = $service->events->listEvents($calendarListEntry->id, $optParams);
foreach ($events->getItems() as $event) {
//process events
}
$pageToken = $events->getNextPageToken();
if ($pageToken == null) { continue = 0; }
}
编辑:奇怪的是,当我将maxResults降低到250时,我得到了一些原本没有出现在结果中的东西。但我还没有得到所有这些。
Edit2:忘记包含调用以阅读下一页令牌。
编辑3:奇怪的是,虽然我传入了“单一事件”。 =&GT;是的,我也得到了标记为重复的事件。
答案 0 :(得分:1)
用分页
$events = $service->events->listEvents('primary');
while(true) {
foreach ($events->getItems() as $event) {
echo $event->getSummary();
}
$pageToken = $events->getNextPageToken();
if ($pageToken) {
$optParams = array('pageToken' => $pageToken);
$events = $service->events->listEvents('primary', $optParams);
} else {
break;
}
}