当前位置: 首页 > news >正文

做一个网站多久永康市住房建设局网站

做一个网站多久,永康市住房建设局网站,客户管理软件crm,网站布局教程Java实现 钉钉群聊机器人定时发送消息功能 钉钉群聊准备工作钉钉发起群聊创建项目群打开钉钉群聊设置打开机器人管理选择Webhook机器人添加机器人安全设置保存Webhook地址(重点是token) 项目代码实现添加依赖启动类添加定时任务启动扫描编写调度任务定义…

Java实现 钉钉群聊机器人定时发送消息功能

  • 钉钉群聊准备工作
    • 钉钉发起群聊
    • 创建项目群
    • 打开钉钉群聊设置
    • 打开机器人管理
    • 选择Webhook机器人
    • 添加机器人
    • 安全设置
    • 保存Webhook地址(重点是token)
  • 项目代码实现
    • 添加依赖
    • 启动类添加定时任务启动扫描
    • 编写调度任务
    • 定义接口
    • 实现接口

机器人作为一种独立的应用能力,在钉钉中扮演着重要角色。只需进行简单的设置,机器人就能够在单聊场景或群聊场景中发送消息通知,或者提供与用户的交互式服务。利用机器人,可以有效地将业务信息和任务融入钉钉的聊天环境中,从而加速工作流程和团队协作。

钉钉群聊准备工作

钉钉发起群聊

打开钉钉,发起群聊
请添加图片描述

创建项目群

请添加图片描述

打开钉钉群聊设置

请添加图片描述

打开机器人管理

选择添加机器人
请添加图片描述

选择Webhook机器人

自定义-通过Webhook接入自定义服务请添加图片描述

添加机器人

设置机器人名字
请添加图片描述

安全设置

此处有三个选项,可以参考钉钉的说明文档,我选择的是自定义关键字
触发自定义关键字需要在推送text内容中包含有自己设置的关键词才能发送成功,完成后点击保存
请添加图片描述

保存Webhook地址(重点是token)

请求地址是固定的,https://oapi.dingtalk.com/robot/send
这里着重记录access_token,这是每个机器人唯一的
请添加图片描述
到这里钉钉群聊准备工作就完成了

项目代码实现

因为我们的功能需求是,需要每天定时将项目前一天的核心信息汇总,通过群聊机器人发送到钉钉群聊当中,所以这里主要通过两个工具来辅助实现的

1.SpringBoot框架自带的调度任务
2.钉钉(阿里)提供的sdk工具包

添加依赖

pom.xml 文件添加以下依赖项:

			<!--钉钉消息通知相关--><dependency><groupId>com.aliyun</groupId><artifactId>alibaba-dingtalk-service-sdk</artifactId><version>2.0.0</version></dependency>

启动类添加定时任务启动扫描

需要在主应用程序类或配置类上添加 @EnableScheduling 注解以启用调度功能。
这块内容在之前的文章中有 【SpringBoot 调度任务】挺简单的

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication
@Slf4j
@EnableScheduling
public class BizApplication {public static void main(String[] args) {log.info("start to run...");SpringApplication.run(BizApplication.class, args);log.info("started finish");}
}

编写调度任务

import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;/*** 订单调度器** @author: 高克莱* @date: 2024/12/18*/
@Slf4j
@Component
public class InfoScheduler {/*** 加锁等待时间(秒)*/public static final long LOCK_WAIT_TIME = 0L;/*** 加锁超时时间(秒)*/public static final long LOCK_LEASE_TIME = 60L;@Autowiredprivate RedisLock redisLock;@Autowiredprivate DingtalkClient dingtalkClient;/*** 每天上午9点信息汇总*/@Scheduled(cron = "0 0 9 * * ?")public void infoSummary(){RLock lock = null;try {// 加锁lock = redisLock.getLock("Scheduler:infoSummary");lock.tryLock(LOCK_WAIT_TIME, LOCK_LEASE_TIME, TimeUnit.SECONDS);// 加锁失败if (!lock.isLocked()) {// 不处理return;}//根据自己的业务需求,整理好信息内容StringBuilder msgContent = new StringBuilder();           //机器人发送信息dingtalkClient.sendInfoSms(msgContent.toString());}catch (Throwable e){log.error("RefundScheduler infoSummaryerror", e);} finally {redisLock.releaseLock(lock);}}}

定义接口

/*** 钉钉群聊机器人消息通知客户端** @author: 高克莱* @date: 2024/12/18*/
public interface DingtalkClient {/*** 钉钉群聊机器人发送每日信息* @param msgContent*/void senInfoSms(String msgContent);
}

实现接口

钉钉功能实现部分可以直接打开【钉钉开放平台】搜索 “自定义机器人发送群聊消息”

import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.dingtalk.api.response.OapiRobotSendResponse;
import com.sunrise.integration.client.DingtalkClient;
import com.taobao.api.ApiException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** 钉钉群聊机器人消息通知客户端实现** @author: 高克莱* @date: 2024/12/18*/
@Component
public class DingtalkClientIpml implements DingtalkClient {//webhook.url 为 https://oapi.dingtalk.com/robot/send@Value("${dingtalk.webhook.url}")private String WEBHOOK_URL;//webhook.access_token 为 自己保存的access_token,前面步骤提过(钉钉群聊准备工作-保存Webhook地址(重点是token))@Value("${dingtalk.webhook.access_token}")private String CUSTOM_ROBOT_TOKEN;private DingTalkClient client;@Overridepublic void senInfoSms(String msgContent) {try {client = new DefaultDingTalkClient(WEBHOOK_URL);OapiRobotSendRequest req = new OapiRobotSendRequest();//定义文本内容OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();msgContent = "信息通知:\n" + msgContent;text.setContent(msgContent);//设置消息类型 文本消息req.setMsgtype("text");req.setText(text);//定义 @ 对象  群聊机器人可以@群成员
//        OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
//        at.setAtUserIds(Arrays.asList("xxxxxxx"));//at指定用户的userId,userId需要在钉钉后台管理中查询
//        at.setIsAtAll(true);//at所有人
//        req.setAt(at);OapiRobotSendResponse rsp = client.execute(req, CUSTOM_ROBOT_TOKEN);} catch (ApiException e) {e.printStackTrace();throw new RuntimeException();}}
}

调用频率限制
由于消息发送太频繁会严重影响群的使用体验,因此自定义机器人发送消息的频率限制如下:
每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟

效果:
请添加图片描述

http://www.laogonggong.com/news/72057.html

相关文章:

  • 中英文外贸网站模版wordpress 公司建站
  • 网站建立后怎么做推广可以做h5的软件
  • 网站开发外包公司有哪些部门网站备案要拍照
  • 企业网站推广方案的策划wap网站怎么发布
  • 东莞网站开发公司哪家好营销网店推广的软文
  • 企业网站的优化王烨涛
  • 深圳专业优定软件网站建设建设银行app下载手机银行
  • 17一起做网站后台建设局焊工证图样
  • 制作个人网站步骤下载软件的软件哪个好
  • 网站运行模式最近2019中文字幕mv免费看
  • 酷站字体建设专业网站哪家技术好
  • 水产公司网站源码制作网页的网站
  • 建企业网站需要哪些资料wordpress页数
  • 为什么需要网站开发网页设计dw代码大全
  • 网站的v2信誉认证怎么做软件开发属于哪个专业
  • 一些做设计素材的网站网站开发怎么做账
  • 网站后台补丁如何做免费建立网页
  • 网站产品页面wordpress 最大上传
  • 收到网站建设费分录网站开发是什么语言
  • 郑州网站定制外包wordpress怎么调用分类的文章
  • 网站开发 保证书全国高端定制
  • 如何免费搭建网站郴州网站建设
  • 网站开发者工具下载互联网个人用户网站
  • 用什么网站做cpawordpress网站加cnzz
  • 做视频素材网站网站建设实施规范
  • 游戏网站模板下载玄武模板网站制作报价
  • 定制网站开发技术前端开发人员怎么做网站
  • 建网站都用什么字体中国建设工程安全管理协会网站
  • 西电信息化建设网站全渠道营销管理平台
  • 泰州模板自助建站服装电子商务网站建设与实现