活动资源的各个字段 涵盖与广告系列相关的最常见数据 事件(如位置、开始时间等),但应用可能希望存储 特定于其应用场景的其他元数据日历 API 提供 可使用名为 扩展属性。 扩展的属性便于存储活动的应用程序专用数据 而无需使用外部数据库。
公开范围
可用的扩展属性有两种:私有和共享。
活动的所有参加者都可以查看和编辑共享属性,而
私有属性设置在一个与会者的本地“副本”上,事件。更多
具体而言,私有属性特定于 calendarId
和 eventId
而要显示共享属性,则无论
请求中使用了 calendarId
。
添加和更新属性
扩展属性在 Events 资源上设置,并且与其他字段一样, 在 insert 中设置, update 和 patch 请求。 使用补丁请求是首选 方法,因为它允许您处理一些属性,同时保留其他属性。 不受影响。添加具有相同键的新属性会覆盖任何现有属性 具有相同键的属性。以下示例展示了如何将 属性:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": "yes"
}
}
}
删除属性
任何未包含在更新请求中的属性都将被删除,但最好 方法是发出补丁请求以将值设置为 null。以下 示例显示了删除私有属性:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": null
}
}
}
搜索房源
您可以使用
Events.list 请求。
设置字段
privateExtendedProperty
或
sharedExtendedProperty
propertyName=value
格式的限制条件,
分别针对私有资源和共享资源进行搜索。以下
示例会返回具有私有属性 petsAllowed=yes
的事件:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes
您可以多次重复这些字段,约束条件为 OR 关系
因此,事件只需匹配要返回的某个约束条件即可。
以下示例查找具有私有属性的事件
petsAllowed=yes
或 isOutside=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &privateExtendedProperty=isOutside%3Dyes
请注意,私有属性和共享属性的约束条件之间是 AND 关系
不过,事件必须同时符合这两组约束条件才会被返回。
以下示例查找具有私有属性 petsAllowed=yes
的事件
以及公共属性 createdBy=myApp
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &sharedExtendedProperty=createdBy%3DmyApp
限制
- 属性的键不得超过 44 个字符, 较长的键会被静默地丢弃。
- 属性值的大小上限为 1024 个字符, 将被自动截断。
- 一个事件最多可以包含 300 个媒体资源,总大小不超过 32kB (键大小 + 值大小)。这 300 个房源包括共享和私人 属性,在所有“副本”中事件。