• 钉钉小程序生态—企业机器人加互动卡片,改善用户体验的开始!


    一、前言

    大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

    首先上一些图,让大家知道我这篇文章要讲的是啥。

    1. 什么是企业机器人?

    企业机器人,具备完整的接收消息和发送消息的能力。它与Webhoook 机器人不同,Webhoook 机器人只能出现在群里面,而企业机器人不仅可以在群里出现,还可以以单聊的形式出现,企业机器人很多时候都是以"xx小蜜"或"xx助手"命名。

    • 企业机器人属于功能版块
      图片描述

    • 点进去是机器人推送给你的信息
      图片描述
      图片描述

    2. 什么是互动卡片?

    钉钉互动卡片是一种新型的消息类型,它具有动态性、可交互性、多端统一等特点。它能够极大地丰富消息类型,并且促进用户的沟通互动。互动卡片具有以下特点。

    • 卡片内容可动态变更与普通的文本消息或Markdown消息相比,互动卡片能够在卡片内多端实时进行内容的变更,减少消息打扰,提升效率。

    • 互动卡片能够让用户直接在卡片内进行轻量级交互,促进沟通互动,并且无需进入二级页面,能够缩短用户操作路径,提升效率。

    3. 服务端、企业机器人、互动卡片、用户的关系图

    从这个关系图上看起来逻辑不复杂,那么接下来我来详细说一下如何实现这些功能。

    二、创建企业机器人

    1. 创建一个应用(企业内部应用、第三方企业应用都可以)

    进入钉钉开放平台 —> 应用开发 —> 创建应用
    图片描述

    2. 添加机器人能力

    添加完机器人能力之后左侧菜单栏确实出现了一个机器人的菜单,但是点进去却是消息模板???
    说真的,我看到这个一脸懵逼,真想问候一下钉钉开放平台的产品,你系统升级改版很正常,但是你东西都改没了,请问机器人能力在哪?
    后来我实在是找不到了,就提了个工单,终于搞定了这个。

    首先,回到添加应用能力,点击添加“酷应用”

    其次,点击“创建酷应用”,选择第一个“扩展到群会话”

    再次,添加完必填信息,点击保存

    最后,回到机器人菜单,这时就出现了机器人的信息

    WTMD!!!

    三、搭建互动卡片

    1. 进入卡片平台—> 新建模板


    2. 搭建卡片模板

    这里我直接从预设模板中选择了审批模板,保存后点击发布即可。

    3. 获取卡片的模板ID

    回到模板列表,这里可以看到刚才创建出来的卡片,下面有卡片的模板ID
    图片描述

    四、企业机器人推送互动卡片

    1. 根据应用信息、企业corpID、SuiteTicket获取accessToken

    官方接口文档

    这个我就不多说了,如果不知道SuiteTicket是啥,可以看我这篇文章钉钉小程序三方企业应用事件与回调

    2. 服务端调用接口推送互动卡片

    官方接口文档

    这里我直接使用钉钉提供的调试平台进行接口调用,就不自己写代码了。这个接口的参数都是比较好懂的,那个cardData参数就是卡片平台里面的变量

    格式如下:

    {
        "title": "测试提交的审批",
        "type": "团建",
        "amount": "200000",
        "reason": "一起玩"
    }
    

    调用该接口之后,机器人就会给指定的用户发送一个审批的卡片了
    图片描述

    3. 卡片事件回调服务端

    这个也很简单,接口提供了一个参数:callbackUrl,这个参数可控制卡片回调的URL,不填则无需回调,该链接必须是公网可以访问的。

    这个参数理解是好理解,但是钉钉文档写的也是一塌糊涂,虽然我知道你会回调,但是回调的格式也不告诉我们,我找了半天才找到。
    有两个点大家注意一下:
    第一,接口必须是post请求才行;
    第二,接口的参数格式如下:

    {
        "corpId": "xxxx",
        "outTrackId": "xxx",
        "userId": "xxxx",
        "value": "xxx"
    }
    

    4. 服务端调用接口更新互动卡片状态


    从动图中我们可以看到,当点击了接受之后,下面的按钮就变成了已接受,且不可以再点击。那么这个效果应该怎么做呢?这就需要用到更新机器人发送互动卡片这个接口了。
    不过在调用接口之前,我们需要对卡片进行一些调整。

    (1)新增已同意、已拒绝按钮,将其设置为不可用

    (2)新增status变量

    (3)同意和拒绝按钮的展示条件为“status等于handling”

    (4)已同意按钮的展示条件为“status等于agree”

    (5)已拒绝按钮的展示条件为“status等于reject”

    (6)发布该卡片模板,调用接口

    a. 调用发送接口,参数如下

    {
        "title": "测试提交的审批",
        "type": "团建",
        "amount": "200000",
        "reason": "一起玩",
        "status": "handling"
    }
    
    图片描述

    可以看到两个按钮都展示了。

    b. 调用更新接口,状态为agree,参数如下

    {
        "title": "测试提交的审批",
        "type": "团建",
        "amount": "200000",
        "reason": "一起玩",
        "status": "agree"
    }
    
    图片描述

    可以看到按钮变成了已同意。

    c. 调用更新接口,状态为reject,参数如下

    {
        "title": "测试提交的审批",
        "type": "团建",
        "amount": "200000",
        "reason": "一起玩",
        "status": "reject"
    }
    
    图片描述

    可以看到按钮变成了已拒绝。

    五、总结一下

    企业机器人加入互动卡片可以让用户体验更好,主要是因为:

    • 更美观:卡片比纯文本看起来更吸引人。
    • 更清晰:信息布局有条理,用户容易理解。
    • 操作简单:卡片上的按钮和链接让用户知道下一步该做什么。
    • 互动有趣:用户可以通过填表、点击等方式与机器人互动,更加有趣。
    • 个性化服务:根据用户的需求,推送不同的卡片,满足个人喜好。
    • 更方便:有时候用户可以直接在卡片上完成一些操作,比如预订或支付。

    总的来说,互动卡片让用户与机器人的交流更直观、更便捷,也更有趣。如果你的产品正在使用钉钉小程序,那么可以尝试使用这个组合!

    作者:不若为止
    欢迎任何形式的转载,但请务必注明出处。
    限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

  • 相关阅读:
    android 指针动画转动
    uniapp iconfont-引用阿里巴巴矢量图标库
    c语言utf8转gb2312(十六进制)
    Springboot健康饮食小程序的设计的实现毕业设计源码280920
    芯驰D9评测(2)--系统环境配置连接
    启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
    Linux: linux常见操作指令
    Java算法 每日一题(十一) 编号20:有效的括号
    自动驾驶技术:现状与未来
    快速掌握Nginx部署前端项目(从Nginx安装配置及部署都非常详细哦!)
  • 原文地址:https://www.cnblogs.com/wlovet/p/17945414