1.5.12 钉钉机器人
更新时间:2019-05-30 11:36:38
节点简介
钉钉机器人节点可以将消息推送至钉钉群中,可以应用在设备消息推送、监控报警、信息公示等多种场景。目前仅支持信息推送,不支持用户消息返回处理。
使用场景
使用钉钉机器人将消息推送至钉钉群中,可将设备告警信息、设备属性信息、业务逻辑处理结果以定时/触发的方式推送到钉钉群中。
配置项
要使得上游节点中的内容能够推送到一个钉钉群中,首先要在该钉钉群中手动创建一个机器人,获得该机器人的消息传输地址(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方法。