Google Calendar v3 API [事件:列表]请求返回空列表

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)