遵循Google API我添加了指定用户的自定义属性。我已经尝试过 - 一般来说,它对我有用。我可以添加String
属性和String
值。同样,如果属性值完全匹配,我也成功地从Google加载了相应的数据。格式为共享属性指定标准是(私有的类似):
/**
* 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;
}
现在,我需要在publicCase
属性的Google Properties中有一个集合。之后,我应该能够将一个与相应的标准请求匹配。是否可以在包含publicCase
自定义属性where publicCase in ["valueCollection"]
的Google日历事件中找到?如果可能的话,请为我分享相应的信息。
另一个问题。是否可能指定条件匹配属性值的替换?
我如何在请求中指定OR
规则?有可能吗?
PS
作为Google客户端,我使用google-api-services-calendar-v3-rev225-1.22.0.jar
。如果有任何正确的示例(java
,js
,pyton
和其他)或API文档,我会很高兴。
我没有Google提供的完美解决方案,但是我使用了使用Google提供的功能的解决方法。
如果我不能使用复杂条件与inRage
或subValue
匹配字段值,否则解决方案是基于构建 smart 字段名称。例如,我需要添加数据填充的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中,我已经在需要加载的对象上指定了链接。
PS
我已经考虑了其他一些解决方法,但是我没有出版它们,因为我认为这是其中所有人中最好的。无论如何,我开放考虑其他解决方案(更好的想法或错过了Google API)。