gpt4 book ai didi

google-api - Google 日历 v3 API [事件 : list] request return Empty List

转载 作者:行者123 更新时间:2023-12-04 10:18:37 26 4
gpt4 key购买 nike

我正在使用 python urllib 在 Google 日历(API V3)上提出请求。
现在,问题是当我请求' Events: list 时',然后我得到了零个项目作为响应,尽管该日历中有事件。
示例

   {  "kind": "calendar#events",
"nextPageToken": "CigKGm83a292ZzZ2YXBsNXRsMHJhZnV2cGprdHVvGAEggIDA97TfuYYUGg0IABIAGOjEqd_6q7kC",
"items": [ ]
}
如果我使用' nextPageToken ' 在下一个请求中它 工作正常 .(但我不想提出任何额外的要求。)
不是每次都会出现这个问题。如果我创建新的 email_id 这工作正常。但一两个月后,这个问题又开始了。

Is this a bug in Google Calendar API ?

or

Is there any solution to get event list of any calendar in just One Request ?


提前致谢。

最佳答案

我一直在试图找出同样的问题,我相信我有答案。

这里的问题是,当 Google 计算要返回的“页面”事件时,它会在该计算中包含已删除的事件,并且您的第一页充满了您看不到的已删除事件,除非您的请求具有“showDeleted = True” .

我为用户提供了一种方法来“清除”他们的日历并重新填充它并遇到了这个问题。考虑这个场景:

  • 用户在他们的日历中有 250 个事件,为了争论,假设 Google 的“页面”大小相同。
  • 当用户运行重新填充的过程时,这 250 个事件将被删除并创建 250 个"new"事件。
  • 当我们接下来在重新填充过程之前删除事件时,第一页返回时没有事件 - 这是因为列表中的前 250 个是最初删除的那些。 (我已经使用 API Explorer 验证了这一点)
  • 使用 nextPageToken 获取下一页结果有效 - 正如您所指出的。
  • 这就是为什么创建新日历会在一段时间内起作用 - 即直到您超过“页面”限制并开始返回 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

    关于google-api - Google 日历 v3 API [事件 : list] request return Empty List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18566386/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com