暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

打造个性化钉钉智能机器人

IT那活儿 2024-10-11
114

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

什么是钉钉机器人

钉钉机器人是钉钉团队开发的一款自动化工具,它可以在钉钉中实现自动发送消息和提醒功能。通过配置钉钉自定义机器人,用户或开发者能够将第三方服务的通知、系统监控报警、日程提醒等信息发送到钉钉群聊或指定用户中,从而实现实时、自动化的信息同步。
具体来说,使用钉钉机器人可以做到以下几点:
  • 按照预设的规则或事件触发,将消息内容自动推送到指定的钉钉群组或用户;
  • 与外部系统和服务进行集成,例如对接GitLab以获取源码更新通知,或是对接运维监控系统以发送告警信息;
  • 可以通过配合其他应用来实现定时提醒功能,将便签上的待办事项或提醒时间点自动同步至钉钉群聊中;
  • 支持自定义消息类型,包括文本、链接、图片、Markdown等多种形式,并可选择特定成员@提醒。


创建钉钉机器人

接下来开始打造我们自己的自定义机器人,实现单聊和群聊的消息接收与发送功能。
首先,需要注册成为钉钉开发,登录钉钉开发者后台,选择应用开发 > 钉钉应用 > 创建应用:
创建应用后,进入应用能力 > 机器人,打开机器人配置开关,填写机器人相关配置信息,填完后点击发布:
需要注意的是,钉钉机器人的消息接收模式有HTTP和Stream两种,前者简单易用、由事件驱动,后者实时性强、效率高、更易于扩展。此处我们采用后者-Stream模式。
发布应用,进入应用发布 > 版本管理与发布,新建一个版本发布:
发布后,应用显示已上线状态。


开发机器人

后端使用Java开发,首先添加以下maven依赖项:
在正式编写代码前,需要在钉钉开放平台获取刚创建应用的凭证信息Client ID和Client Secret:

3.1 接收机器人消息

代码如下,这里使用Stream模式接收消息,传入应用凭证信息,打印接收到的消息内容,并且根据收到的消息类型,分别调用单聊或者群聊的发送接口回复消息:

3.2 机器人发送单聊消息

首先需要根据应用凭证信息调用接口获取accessToken:
调用服务端API获取应用资源时,需要通过accessToken来鉴权。accessToken的有效期是2小时,在正式系统中开发者需要缓存该信息:
运行main方法拿到accessToken值:
下面实现发送单聊消息方法,这里直接在官方示例上修改
调用接口需要的主要入参有机器人编码、接收机器人消息的用户的userId列表、消息模板类型和模板参数,相关信息可以在机器人接收到的消息体内获取。钉钉支持的消息类型很多,此处接收到消息后,以简单的文本类型回复。

3.3 机器人发送群聊消息

发送群聊消息总体与单聊接口类似,主要区别是群聊消息需要传入群ID字段openConversationId。
完成代码编写后,运行步骤1的main方法启动消息监听。应用程序通过集成的SDK 与钉钉开放平台建立一条 WebSocket 连接,当有事件推送、卡片回调发生时,开放平台通过 WebSocket 连接将数据通知到应用程序。应用程序接收到这些数据并进行相应处理,从而实现与钉钉开放平台的实时通信。
观察到以下日志,表明WebSocket 连接建立成功。


效果展示

4.1 机器人单聊场景

在钉钉客户端搜索机器人名称,打开聊天窗口:
发送消息,成功收到机器人回复:

4.2 机器人群聊场景

在群聊内添加机器人:
发送消息并且@机器人,成功收到回复。

END


本文作者:孙涛涛(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论