调用REST端口实现钉钉通知

2022-02-08 13:45:51 浏览数 (1)

钉钉已经成为很多企业日常工作必备的交流软件,知行软件也在钉钉通知上做出了一些努力,利用知行之桥的REST端口调用钉钉机器人API从而实现钉钉通知的功能,这样当客户在EDI系统上收到数据后,钉钉群组同时会发送通知消息,客户可以及时处理信息,提高效率。

一 创建钉钉机器人

钉钉的群组有一个自定义机器人的功能,可以利用这个功能来创建消息通知的钉钉机器人,实现钉钉通知。

1、打开群组设置,点击添加机器人。

2、选择自定义机器人

3、设置机器人姓名

这里可以进行自定义比如:【消息通知】。选择对应需要接收通知消息的群组,添加安全设置。如下图所示,这里是三选一,一般选择自定义关键字即可,注意这个关键字需要在REST端口传输的json文件中使用到。例如添加了一个自定义关键词:“收到”,则这个机器人所发送的消息,必须包含“收到”这个词,才能发送成功。

4、设置完成后机器人就会开始工作

需要注意的是,机器人的设置界面会有一个带有access_token的url,复制保存,在调用时需要用到这个带有access_token的url。

二 调用API

在知行之桥的REST端口设置带有access_token的url,方法为:POST 头部为Content_Type:application/json 另外需要注意的是:发起POST请求时,必须将字符集编码设置成UTF-8。

配置好这些,下一步就是在实际业务转换结束时生成一份json文件,这份json文件需要包括以下参数。

要实现钉钉通知,需要传输的json文件的格式如下所示。

代码语言:javascript复制
{
    "at": {
        "atMobiles": [
            "180xxxxxx"
        ],
        "atUserIds": [
            "user123"
        ],
        "isAtAll": false
    },
    "text": {
        "content": "收到850收据@180xxxxxx "
    },
    "msgtype": "text"
}

三 实现消息传输

1、钉钉通知-订单通知

如图所示,可以在知行之桥中搭建工作流,我们要完成的功能是:为一个Excel方案添加接收方向的钉钉通知demo。 在正常接收到X12报文,并将X12报文转换为XML后通过上图所示的Demo_Copy端口复制一份转换后的xml文件,得到两份相同的xml文件。一份按照正常的流程继续经Excel端口后再通过邮箱端口发送到客户邮箱,另一份来进行钉钉通知。

但是在进行钉钉通知之前,需要先经过一个Schedule端口进行几分钟的延时,以确保真实的数据完全进入到客户的邮箱后,再进行钉钉通知。完成Schedule端口延时之后经过Script端口,提取报文名称和主键信息,转为钉钉机器人可以读取的json文件,然后经过REST端口发送到钉钉群组,即可实现钉钉通知的功能。以下是几种钉钉通知的界面展示。

艾特到具体人的钉钉通知

艾特所有人的钉钉通知

不做任何艾特的文本消息通知

2、报错预警-AS2端口自动巡检

EDI对外的连接端口有时也会因为各种各样的情况出现问题,比如修改http为https后,出现设置的SSL证书问题,这样就会导致EDI环境挂掉,因此可以利用钉钉通知功能来进行自动巡检,当环境出现问题后,用户就可以及时知道并进行处理。 如上图所示,我们在知行之桥EDI系统上创建一个Script端口和AS2端口,利用Script端口来实现当AS2端口的出现问题时,及时进行钉钉通知,方便运维人员及时进行检查并纠正。 Script端口具体代码如下:

代码语言:javascript复制
<rsb:set attr="check.sslcert" value="*"/>
<rsb:set attr="check.url" value="AS2URL"/>
<rsb:call op="httpGet" in="check">
  <rsb:catch code="*">
    <rsb:set attr="notify.url" value="【钉钉自定义机器人的url】"/>
    <rsb:setm item="notify">
      url = 钉【钉自定义机器人的url】
      postdata = {"at": {"atMobiles":["【被@人的手机号】"],"isAtAll":是【否@所有人,是为true,否为false】},"text": {"content":"业务警报:AS2端口无法访问,请马上检查![_message | def]"},"msgtype":"text"}
      contenttype = application/json
    </rsb:setm>
    <rsb:call op="httpPost" in="notify" />
  </rsb:catch>
</rsb:call>

<rsb:set attr="o.FileName" value="[_|now]" />
<rsb:push item="o"/>

其中,postdata里的内容就是调用钉钉机器人的json文件内容。 报警示例:

这样,通过REST端口调用钉钉通知的功能就可以实现,用户通过知行之桥EDI系统进行数据收发时,可以及时在钉钉群组中收到通知消息,确保信息能够得到及时处理,提高响应效率。

0 人点赞