已关注 Google API我为指定用户添加自定义属性。
我已经尝试过 - 一般来说它对我有用。我可以添加 String
属性和 String
值。如果属性值完全匹配,我也成功地从 Google 加载了相应的数据。指定共享属性标准的格式是(类似于私有(private)属性):
/**
* Extended properties constraint specified as propertyName=value. Matches only shared
* properties. This parameter might be repeated multiple times to return events that match all
* given constraints.
*/
public List setSharedExtendedProperty(java.util.List<java.lang.String> sharedExtendedProperty) {
this.sharedExtendedProperty = sharedExtendedProperty;
return this;
}
现在我需要在 Google 属性中为 publicCase
属性提供一个集合。之后我应该能够将一个与相应的标准请求相匹配。是否可以在包含 publicCase
自定义属性 where publicCase in ["valueCollection"]
的 Google 日历事件中找到?如果可能的话请给我分享相应的信息。
另一个问题。是否可以指定条件匹配属性值的 subSting?
如何在请求中指定 OR
规则?可能吗?
附注
作为 Google 客户端,我使用 google-api-services-calendar-v3-rev225-1.22.0.jar
。如果有任何正确的示例(java
、js
、pyton
等)或 API 文档能够回答我的问题,我将非常高兴。
最佳答案
我还没有得到 Google 提供的完美解决方案,但我使用了使用 Google 提供的功能的解决方法。
如果我无法使用复杂条件通过 inRage
或 subValue
或其他方式匹配字段值,解决方案基于构建智能字段名称。例如,我需要添加由数据填充的 crmCollection
字段,但 Google API 只允许我添加 string
值。我会将集合转换为 json 并将其表示为字符串,这样将添加自定义字段,但我将无法通过它搜索任何日历事件。因此集合应该在单个元素上分开。如果元素可以以不同的方式命名,那么很容易将其拆分为单个元素。在当前情况下,这几乎是不可能的,解决方法是在字段名称末尾添加特殊标记(每个数据元素都有一个唯一的字段,如 id
,可用于自定义字段名称构建)。最后,使用相同的规则,我可以使用每个自定义属性构建搜索请求:
Map <String, String> (key | value)
-----------------------------------
"crmCollection" | "[crmObject1, crmObject2, crmObject3 ...]" (in json representation)
转化为:
Map <String, String> (key | value)
-----------------------------------
"crmCollectionIdOfFirstObject" | "true"
"crmCollectionIdOfSecondObject" | "true"
"crmCollectionIdOfThirdObject" | "true"
我存储中的真实对象,但在 Google 中,我已指定要根据需要加载的对象上的链接。
附注
我考虑过其他一些解决方法,但我没有发布它们,因为我认为这个是所有解决方法中最好的。无论如何,我愿意考虑其他解决方案(更好的想法或错过了 Google API)。
关于java - 谷歌日历 API。处理事件的共享扩展属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47697669/