对于每个敏锐事件,敏锐对象会自动与敏锐对象的结构关联。

var keen_event = {
 "keen": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939"
 },
 other properties...
}


但是我想在敏锐对象中添加其他自定义属性为;

 {
 "keen": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939",
  "event_type" : "some_values",
  ...
 }
}


我尝试在keen上添加其他属性,而不是将keen_event编码为:

var encodedData = base64.encode(JSON.stringify(keen_event));


编码后的数据然后通过敏锐的api传递以创建事件,但我收到以下错误消息:“敏锐命名空间的无效属性。您使用过:\'event_type \'”。

有解决方案吗?创建敏锐事件时,是否可以在“敏锐”对象上添加除标准属性之外的自定义键值属性?提前致谢。

最佳答案

不,这在Keen API中是不允许的。 keen命名空间是保留的,并且在写入事件时,只能在该命名空间中指定少量属性(例如keen.timestampkeen.addons)。保留名称空间是为了允许Keen将来添加新的特殊用途的属性,而不必担心与用户定义的属性发生冲突。 (另请参见:https://keen.io/docs/api/#the-keen-object。)

也许值得退后一步,问:为什么要向keen名称空间添加自定义属性?它可以让您做什么,例如my.keen.xkeen_custom.x无法做到的?

仅供参考:我是Keen的平台工程师:)

关于node.js - 是否可以在“敏锐”对象中添加除标准属性以外的其他用户定义属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48091211/

10-10 11:09