Google Calendar API停止了返回活动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Calendar API停止了返回活动相关的知识,希望对你有一定的参考价值。
从今天起,我遇到了与Google Calendar API v3相似的两个调用之一的问题:
calendar.events.list
两个调用都在请求assignemnts列表并使用privateExtendedProperty来过滤它们,但key = Value对是不同的。
当我将privateExtendedProperty设置为myStatus = READY时,它返回我需要的事件,但当我将privateExtendedProperty设置为myId = agxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYkcHA3wgM时,它不返回任何事件,但我确定这个myId有几个事件...
当查询由长度为90个字符的privateExtendedProperty时,日历API列表似乎返回一个空列表。
一切都运行良好多年,但今天早上我的一些用户突然爆发了......
这是我的要求:
GET googleapis.com/calendar/v3/calendars/****/events?privateExtendedProperty=myId%3Dagxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYwauk6QgM&key={YOUR_API_KEY}
这是我在API资源管理器中看到的结果:
{
"kind": "calendar#events",
"etag": ""*****"",
"summary": "*****",
"description": "*****",
"updated": "2018-02-20T03:18:35.098Z",
"timeZone": "Asia/Tokyo",
"accessRole": "owner",
"defaultReminders": [
],
"nextSyncToken": "CJDv1KDEs9kCEJDv1KDEs9kCGAU=",
"items": [
]
}
更新1:我的privateExtendedProperty如下所示:
{
"myStatus": "READY",
"myId": "agxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYkcHA3wgM",
"another": "Another value",
"another2": "Another value2"
}
当我用“myStatus = READY”查询事件时 - 返回事件,但当我对“myId = agxzfm1 ...”执行相同操作时 - 它返回emtpy列表。
更新2:对于那些有同样问题的人。根据建议,我创建了一个新日历,然后复制了一些测试数据并在privateExtendedProperty查询中尝试了长值,并按预期返回了事件。这意味着,如果这是一个错误 - 并非所有日历都受到影响,并且将事物移动到新日历可能是一种方法。
The document for Extended Properties说限制如下。
- 属性键的最大大小为44个字符,具有较长键的属性将以静默方式删除。
- 属性值的最大大小为1024个字符,具有较长值的属性将以静默方式截断。
- 事件最多可包含300个共享属性,总大小最大为32kB(键大小+值大小)。
- 事件的所有“副本”中最多可包含300个私有属性,总大小最多为32kB(键大小+值大小)。
由此看来,您的案例似乎超出了上述限制。在我的环境中,我也尝试过你的情况。结果,发现可以使用myId=agxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYkcHA3wgM
。
那么你能再次确认以下几点吗?
- 似乎您的API资源管理器检索到的结果不包含
extendedProperties
属性中的items
。当您设置extendedProperties
时,可以看到它。如果你使用fields
,它可能无法被看到。 - 你能再次用
extendedProperties
设置myId=agxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYkcHA3wgM
吗? 您可以使用calendar.events.patch
进行设置。 - 使用
myId=agxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYkcHA3wgM
使用calendar.events.list
检索事件时,如果使用myId%3dagxzfm1haWxmb29nYWVyNQsSDE9yZ2FuaXphdGlvbiIVYWN0aXZlZ2FtaW5nbWVkaWEuY29tDAsSBENhc2UYkcHA3wgM
的URL编码值,请尝试使用不带URL编码的值。
如果这对你没用,我误解了你的问题,我很抱歉。
编辑:
- 如果使用
calendar.events.get
检索事件,是否可以看到您设置的extendedProperties?如果您看不到它,请再次插入extendedProperties。 终点是GET https://www.googleapis.com/calendar/v3/calendars/### calendar Id ###/events/### event Id ###?fields=extendedProperties%2Fprivate
- 在我的环境中,你的同一个端点工作正常。那么作为测试,您可以尝试创建新日历并运行该查询吗?因为我担心最近的日历更新是否会影响这种情况。
以上是关于Google Calendar API停止了返回活动的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Javascript 中的 Google Calendar API 获取 Google Calendar 中事件的位置?
在 php 中使用 google calendar api v3 获取定期事件
将 INT 中的日期转换为 Google Calendar API 的 CreateEvent 的 DateTime
从google-calendar-API获取详细信息,无需帐户关联