对于每个敏锐事件,敏锐对象会自动与敏锐对象的结构关联。
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.timestamp
或keen.addons
)。保留名称空间是为了允许Keen将来添加新的特殊用途的属性,而不必担心与用户定义的属性发生冲突。 (另请参见:https://keen.io/docs/api/#the-keen-object。)
也许值得退后一步,问:为什么要向keen
名称空间添加自定义属性?它可以让您做什么,例如my.keen.x
或keen_custom.x
无法做到的?
仅供参考:我是Keen的平台工程师:)
关于node.js - 是否可以在“敏锐”对象中添加除标准属性以外的其他用户定义属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48091211/