钉钉机器人节点
更新时间:2019-02-01 20:52:36
节点简介
钉钉机器人节点可以将消息推送至钉钉群中,可以应用在设备消息推送、监控报警、信息公示等多种场景。目前仅支持信息推送,不支持回调。
使用场景
需要将设备上报信息推送到钉钉群里的时候可以使用钉钉机器人,并且支持@所有人等操作。
配置项
要使得上游节点中的内容能够推送到一个钉钉群中,首先要在该钉钉群中手动创建一个机器人,获得该机器人的消息传输地址(webhook),然后选择消息推动的类型和推送的内容。所以要进行三部分配置:1. 在钉钉群中创建机器人并获取Webhook;2. 配置消息类型;3. 配置发送内容。下面分别加以阐释。
Webhook(机器人消息推送地址)
下面讲解如何在钉钉群中创建一个自定义机器人,并获取该机器人的消息推送地址(webhook)。
钉钉机器人是钉钉群内一个自动化的消息发送工具。在一个钉钉群内打开右上角的“群设置”,可以发现以下弹窗。
点击钉钉机器人,进入机器人配置页面。
选择添加自定义机器人。
然后在完成页面可以看到webhook。整个复制下来,粘贴到输入框内。
消息类型
“钉钉机器人”节点提供多种消息类型的配置,如下图所示。请前往钉钉机器人文档中心了解各消息类型的含义与参数配置。可以尝试在“at”后面写入电话号码在钉钉群@相应的账号。
发送内容
推送内容可以是一些固定的文本,也可以是前面节点输出内容中的变量,并与一些固定的文本结合起来,形成有业务价值的消息。
以text推送类型为例,在文本输入框内,如果需要钉钉机器人往群中动态推送一个变量,首先需要确定变量所在的节点,我们用payload表示上一个节点的输出,query表示第一个节点的输出。由于每个节点的输出都符合Json格式,因此,可以用payload.xxx.yyy或query.xxx.yyy引用上一个节点或者第一个节点中输出内容中的一个对象变量。
所以query.deviceContext.deviceName就表示第一个节点的输出内容中deviceContext对象的deviceName变量,payload.props.PM10.value就表示上一个节点props对象中PM10的Value值。
注意:在文本中,需要将这些变量用{{ }}
包围起来,该变量才能起作用。
{
"msgtype": "text",
"text": {
"content": "空气质量站点{{query.deviceContext.deviceName}}上报PM10浓度,浓度为{{query.props.PM10.value}} ug/m3,空气质量优,不错哦"
},
"isAtAll": false
}
从上文可知,要正确引用某节点输出内容中的一个对象,关键就要知道该节点的输出内容的Json格式。如果您还不是很了解该节点的输出内容Json格式,没关系,您可将服务先进行部署(即使还没有完成),启动服务并用虚拟设备触发服务,即可获得节点日志。从节点日志中,您可以清楚地看到节点的输出内容Json格式。
下图展示了“设备触发”(第一个节点)的某一次节点日志,在日志中可以找到“节点输出”对象。若想用设备名(deviceNmae)作为条件变量,则可用query.deviceContext.deviceName进行引用;若想用设备上报的属性值(如PM10浓度)作为条件变量,则可用query.props.PM10.value进行引用。
下图展现了“钉钉机器人”节点配合“条件”节点,动态往群里推送上报的设备名和属性值(PM10浓度)。
节点输出
以下为调用成功的输出。调用失败的输出请在日志栏查看返回结果。
{
"errmsg": "ok",
"errcode": 0
}
注意此时的payload被覆盖为上述结果,如需在后面的节点调用设备信息等请使用query方法。