钉钉任务创建并发送

编程入门 行业动态 更新时间:2024-10-10 05:17:00

钉钉任务创建并发送

钉钉任务创建并发送

添加maven依赖

<!--钉钉 SDK-->
<dependency><groupId>com.aliyun</groupId><artifactId>dingtalk</artifactId><version>1.4.31</version>
</dependency>

创建并发送任务

参考钉钉开放文档

access_token获取

={appkey}&appsecret={appsecret}
appkey 和 appsecret 来源于每个项目创建时的标识,如下

但是他的access_token是需要手动输入的,而access_token的有效期为两小时,所以当token有效期过了之后就需要再次获取并手动触发。

这样就很麻烦,所以为了减少手动操作,我们需要解析获取到的json数据。

解析第三方接口获取到的json

通过钉钉获取access_token接口获取到的json数据如下

接下来只需要解析返回的数据,并获取access_token,将获取到的token自动装入。

//调用接口,返回字符串
String url = "={appkey}&appsecret={appsecret};
String get = HttpUtil.get(url);
//将获取到的字符串转为json
JSONObject jsonObject = JSONObject.parseObject(get);
//将json封装进实体类
ResultResponse response = jsonObject.toJavaObject(ResultResponse.class);
//获取access_token
String token = createTaskHeaders.xAcsDingtalkAccessToken = response.getAccessToken();

实体类ResultResponse

@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class ResultResponse {private String errcode;private String accessToken;private String errmsg;private String expiresIn;
}

redis实现token缓存

为了实现对token的管理,可以使用redis进行缓存。
首先需要引入redis并在yml文件中进行配置,此处省略。
定义redis用到的constants类

public class RedisConstants {public static final String REDIS_GROUP = "token:";public static final String DING_REFRESH = "refresh:";//设置刷新时间为1小时public static final Long REFRESH_TIME = 1L;
}

在实现类中将token放入redis

String key = stringRedisTemplate.opsForValue().get(RedisConstants.REDIS_GROUP + RedisConstants.DING_REFRESH + token);
//若token存在则直接返回
if (org.springframework.util.StringUtils.hasText(key)) {return key;
}
stringRedisTemplate.opsForValue().set(RedisConstants.REDIS_GROUP + RedisConstants.DING_REFRESH, token, RedisConstants.REFRESH_TIME, TimeUnit.HOURS);

更多推荐

钉钉任务创建并发送

本文发布于:2024-02-14 09:13:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1762967.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!