Par*_*jar 7 google-calendar-api google-api
我正在使用python urllib在Google日历上发出请求(API V3).
现在,问题是,当我向' 事件:列表 ' 发出请求时,尽管该日历中有事件,但我得到了零项目.
例
{ "kind": "calendar#events",
"nextPageToken": "CigKGm83a292ZzZ2YXBsNXRsMHJhZnV2cGprdHVvGAEggIDA97TfuYYUGg0IABIAGOjEqd_6q7kC",
"items": [ ]
}
Run Code Online (Sandbox Code Playgroud)
如果我在下一个请求中使用' nextPageToken '它工作正常.(但我不想要任何额外的请求.)
每次都不会出现此问题.如果我创建新的email_id,这工作正常.但一两个月后,这个问题又开始了.
这是Google Calendar API中的错误吗?
要么
是否有任何解决方案只需一个请求获取任何日历的事件列表 ?
提前致谢.
gle*_*eng 12
我一直试图弄清楚同样的问题,我相信我有答案.
这里的问题是,当Google计算要返回的事件的"页面"时,它会在该计算中包含已删除的事件,并且您的第一页中充满了您未看到的已删除事件,除非您的请求具有"showDeleted = True" .
我为用户提供了一种"清除"日历并重新填充日历的方法,并遇到了这个问题.考虑这种情况:
用户在他们的日历中有250个事件,为了论证,让Googles的"页面"大小相同.
当用户运行要重新填充的流程时,将删除这250个事件并创建250个"新"事件.
当我们接下来要在重新填充过程之前删除事件时,第一页返回时没有事件 - 这是因为列表中的前250个是最初删除的那些事件.(我已使用API Explorer验证了这一点)
正如您所指出的那样,使用nextPageToken可以获得下一页结果.
这就是为什么创建一个新日历可以工作一段时间 - 也就是说,直到你超过'page'限制并开始返回0事件,这是我们遇到问题的地方.
随着时间的推移,如果用户经常使用这个重新填充函数,他们删除的事件列表会变得很大,并且需要很多请求才能返回所有事件.(我知道无法从Google Cal中彻底清除所有已删除的事件 - 它们似乎永远存在)
我不知道在一次通话中返回所有事件.您需要循环访问一次获取页面的过程,直到不再返回"NextPageToken".这是有道理的,因为对于拥有1000个约会的巨大日历的用户来说,在一个请求中返回所有内容是低效的.
这里使用Google Calendar API V3是我在VB.Net中使用的一个示例,用于删除所有事件.(服务是Google.Apis.Calendar.v3.CalendarService)
Private Sub ClearAllEvents()
Dim pageToken As String = Nothing
Dim events As Events
Dim qry As New ListRequest(Service, GCalId)
Do
qry.PageToken = pageToken
events = qry.Execute()
For Each ev As [Event] In events.Items
Dim dr As New DeleteRequest(Service, GCalId, ev.Id)
dr.Execute()
Next
pageToken = events.NextPageToken
Loop While Not IsNothing(pageToken)
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2868 次 |
| 最近记录: |