大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
首先上一些图,让大家知道我这篇文章要讲的是啥。
企业机器人,具备完整的接收消息和发送消息的能力。它与Webhoook 机器人不同,Webhoook 机器人只能出现在群里面,而企业机器人不仅可以在群里出现,还可以以单聊的形式出现,企业机器人很多时候都是以"xx小蜜"或"xx助手"命名。
企业机器人属于功能版块
点进去是机器人推送给你的信息
钉钉互动卡片是一种新型的消息类型,它具有动态性、可交互性、多端统一等特点。它能够极大地丰富消息类型,并且促进用户的沟通互动。互动卡片具有以下特点。
卡片内容可动态变更与普通的文本消息或Markdown消息相比,互动卡片能够在卡片内多端实时进行内容的变更,减少消息打扰,提升效率。
互动卡片能够让用户直接在卡片内进行轻量级交互,促进沟通互动,并且无需进入二级页面,能够缩短用户操作路径,提升效率。
从这个关系图上看起来逻辑不复杂,那么接下来我来详细说一下如何实现这些功能。
进入钉钉开放平台 —> 应用开发 —> 创建应用
添加完
机器人
能力之后左侧菜单栏确实出现了一个机器人的菜单,但是点进去却是消息模板???
说真的,我看到这个一脸懵逼,真想问候一下钉钉开放平台的产品,你系统升级改版很正常,但是你东西都改没了,请问机器人能力在哪?
后来我实在是找不到了,就提了个工单,终于搞定了这个。
首先,回到添加应用能力,点击添加“酷应用”
其次,点击“创建酷应用”,选择第一个“扩展到群会话”
再次,添加完必填信息,点击保存
最后,回到机器人菜单,这时就出现了机器人的信息
WTMD!!!
这里我直接从预设模板中选择了审批模板,保存后点击发布即可。
回到模板列表,这里可以看到刚才创建出来的卡片,下面有卡片的模板ID
官方接口文档
这个我就不多说了,如果不知道SuiteTicket是啥,可以看我这篇文章钉钉小程序三方企业应用事件与回调
官方接口文档
这里我直接使用钉钉提供的调试平台进行接口调用,就不自己写代码了。这个接口的参数都是比较好懂的,那个cardData参数就是卡片平台里面的变量
格式如下:{ "title": "测试提交的审批", "type": "团建", "amount": "200000", "reason": "一起玩" }
调用该接口之后,机器人就会给指定的用户发送一个审批的卡片了
这个也很简单,接口提供了一个参数:callbackUrl
,这个参数可控制卡片回调的URL,不填则无需回调,该链接必须是公网可以访问的。
这个参数理解是好理解,但是钉钉文档写的也是一塌糊涂,虽然我知道你会回调,但是回调的格式也不告诉我们,我找了半天才找到。
有两个点大家注意一下:
第一,接口必须是post请求才行;
第二,接口的参数格式如下:{ "corpId": "xxxx", "outTrackId": "xxx", "userId": "xxxx", "value": "xxx" }
从动图中我们可以看到,当点击了接受之后,下面的按钮就变成了已接受,且不可以再点击。那么这个效果应该怎么做呢?这就需要用到更新机器人发送互动卡片
这个接口了。
不过在调用接口之前,我们需要对卡片进行一些调整。
{ "title": "测试提交的审批", "type": "团建", "amount": "200000", "reason": "一起玩", "status": "handling" }
可以看到两个按钮都展示了。
agree
,参数如下{ "title": "测试提交的审批", "type": "团建", "amount": "200000", "reason": "一起玩", "status": "agree" }
可以看到按钮变成了已同意。
reject
,参数如下{ "title": "测试提交的审批", "type": "团建", "amount": "200000", "reason": "一起玩", "status": "reject" }
可以看到按钮变成了已拒绝。
企业机器人加入互动卡片可以让用户体验更好,主要是因为:
总的来说,互动卡片让用户与机器人的交流更直观、更便捷,也更有趣。如果你的产品正在使用钉钉小程序,那么可以尝试使用这个组合!