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

公司网站开发报价制作网站教程

公司网站开发报价,制作网站教程,学工网站建设,安徽论坛网站建设目录 1.通过自定义机器人方式发送群消息 1.1说明 1.2发送普通消息示例#xff08;采用加签方式#xff09; 1.3注意事项 2.通过企业内部应用发送钉钉消息 2.1说明 2.2示例 2.3注意 1.通过自定义机器人方式发送群消息 1.1说明 官网地址#xff1a; 自定义机器人发送…目录 1.通过自定义机器人方式发送群消息 1.1说明 1.2发送普通消息示例采用加签方式 1.3注意事项 2.通过企业内部应用发送钉钉消息 2.1说明 2.2示例 2.3注意 1.通过自定义机器人方式发送群消息 1.1说明 官网地址 自定义机器人发送群消息 - 钉钉开放平台 自定义机器人的创建和安装 - 钉钉开放平台  自定义机器人安全设置 - 钉钉开放平台 自定义机器人在群聊场景中的使用 - 钉钉开放平台 首先创建企业内部群按照官方文档进行创建和安装 自定义机器人的安全设置分为一下三种 ①自定义关键词 发送的消息中至少包含其中一个关键词才可以发送成功 ②加签方式 加签方式是钉钉机器人和开发者双向进行安全认证在群内自定义机器人时开发者的POST地址收到机器人消息携带的headers参数其中包含timestamp和sign字段开发者需要在自己服务内重新计算sign签名值最后再调用自定义机器人发送消息接口时携带开发者服务器内系统当前timestamp和重新计算的sign签名以此来验证安全性。 ③IP地址 设定后只有来自IP地址范围内的请求才会被正常处理支持两种设置方式IP地址和IP地址段暂不支持IPv6地址白名单 1.2发送普通消息示例采用加签方式 ①引入依赖 dependencygroupIdcom.aliyun/groupIdartifactIdalibaba-dingtalk-service-sdk/artifactIdversion2.0.0/version /dependency②创建发送消息工具类 package com.kingagroot.info.common.tools.thirdparty;import com.alibaba.nacos.api.config.annotation.NacosValue; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiRobotSendRequest; import com.kingagroot.info.common.tools.common.LogTool; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64;/*** Author linaibo* Date 2023/11/21 9:45* Version 1.0*/ Component public class DingDingTool {private static LogTool logTool;Autowiredpublic void setLogTool(LogTool logTool) {DingDingTool.logTool logTool;}private static String secret;private static String url;NacosValue(value ${ding.secret}, autoRefreshed true)public void setSecret(String secret) {DingDingTool.secret secret;}NacosValue(value ${ding.url}, autoRefreshed true)public void setUrl(String url) {DingDingTool.url url;}/*** 组装签名url** return url*/public static String getURL() throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {Long timestamp System.currentTimeMillis();String stringToSign timestamp \n secret;Mac mac Mac.getInstance(HmacSHA256);mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), HmacSHA256));byte[] signData mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));String sign URLEncoder.encode(new String(Base64.getEncoder().encode(signData)), UTF-8);String signResult timestamp timestamp sign sign;// 得到拼接后的 URLreturn url signResult;}/*** 获取客户端** return*/public static DingTalkClient getClient() throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {return new DefaultDingTalkClient(getURL());}/*** 发送钉钉消息** param msg*/public static void sendDingMsg(String msg) {try {DingTalkClient client getClient();OapiRobotSendRequest request new OapiRobotSendRequest();//设置发送消息类型request.setMsgtype(text);//设置消息内容OapiRobotSendRequest.Text text new OapiRobotSendRequest.Text();text.setContent(msg);request.setText(text);//设置给谁发送消息OapiRobotSendRequest.At at new OapiRobotSendRequest.At();// isAtAll类型如果不为Boolean请升级至最新SDK设置为true代表群内的所有人at.setIsAtAll(true);//也可以指定接收人的手机号或者钉钉id将消息发送给指定的人// at.setAtMobiles(Arrays.asList(1392xxxxx,155xxxx));request.setAt(at);client.execute(request);} catch (Exception e) {logTool.saveExceptionLog(, , sendDingMsg, e);}} }url是创建自定义机器人是的webhook地址secret是开启加签模式时的密钥。 使用加签方式调用自定义机器人发送消息时需要拼接当前的时间戳和签名。 签名生成方式把timestamp\n密钥当做签名字符串使用HmacSHA256算法计算签名然后进行Base64 encode最后再把签名参数再进行urlEncode得到最终的签名。 发送消息时可以设置发送消息的类型及给谁发送 1.3注意事项 ①部署到服务器后一定要开通服务器访问钉钉的权限否则会出现connect reset的错误 ②注意对钉钉发送异常时的信息记录可以存到日志表中或者是日志文件中 参照SpringBoot集成钉钉自定义机器人群消息推送-CSDN博客 2.通过企业内部应用发送钉钉消息 2.1说明 官方文档 获取企业内部应用的access_token - 钉钉开放平台 发送工作通知 - 钉钉开放平台 首先要在钉钉的开发者后台创建应用获取应用的AppKey、AppSecret及AgentId。获取企业内部应用的token然后再调用发送消息接口进行消息的发送。 2.2示例 package com.kingagroot.info.common.tools.common;import com.alibaba.fastjson.JSON; import com.alibaba.nacos.api.config.annotation.NacosValue; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiGettokenRequest; import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request; import com.dingtalk.api.response.OapiGettokenResponse; import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response; import com.kingagroot.info.common.tools.thirdparty.DingDingTool; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;/*** Author linaibo* Date 2024/1/6 16:18* Version 1.0*/ Component public class DingTool {private static LogTool logTool;Autowiredpublic void setLogTool(LogTool logTool) {DingTool.logTool logTool;}// 权限用户名private static String accessKey;// 权限密码private static String secret;// agent_idprivate static Long agentId;// tokenUrlprivate static String tokenUrl;// 发送消息urlprivate static String sendMsgUrl;// 系统urlprivate static String sysUrl;NacosValue(value ${dingding.appkey}, autoRefreshed true)public void setAccessKey(String accessKey) {DingTool.accessKey accessKey;}NacosValue(value ${dingding.appsecret}, autoRefreshed true)public void setSecret(String secret) {DingTool.secret secret;}NacosValue(value ${dingding.agentId}, autoRefreshed true)public void setAgentId(Long agentId) {DingTool.agentId agentId;}NacosValue(value ${dingding.gettoken}, autoRefreshed true)public void setTokenUrl(String tokenUrl) {DingTool.tokenUrl tokenUrl;}NacosValue(value ${dingding.sendMsg}, autoRefreshed true)public void setSendMsgUrl(String sendMsgUrl) {DingTool.sendMsgUrl sendMsgUrl;}NacosValue(value ${sys.url}, autoRefreshed true)public void setSysUrl(String sysUrl) {DingTool.sysUrl sysUrl;}/*** 获取钉钉token** return*/public static String getDingToken() {DingTalkClient client new DefaultDingTalkClient(tokenUrl);OapiGettokenRequest request new OapiGettokenRequest();request.setAppkey(accessKey);request.setAppsecret(secret);request.setHttpMethod(GET);try {OapiGettokenResponse response client.execute(request);if (response.isSuccess()) {// 调用成功返回token信息return response.getAccessToken();}// 调用接口异常输出异常信息发送钉钉通知logTool.saveExceptionLog(, DingUtils, getDingToken, JSON.toJSONString(response));DingDingTool.sendDingMsg(获取钉钉token失败, response.getErrcode() response.getErrmsg());} catch (Exception e) {// 调用接口异常输出异常信息logTool.saveExceptionLog(, DingUtils, getDingToken, e);}return null;}/*** 发送钉钉通知** param token* param pwd* param userCode*/public static boolean sendMsg(String token, String pwd, String userCode) {DingTalkClient client new DefaultDingTalkClient(sendMsgUrl);OapiMessageCorpconversationAsyncsendV2Request request new OapiMessageCorpconversationAsyncsendV2Request();request.setAgentId(agentId);request.setUseridList(userCode);request.setToAllUser(false);OapiMessageCorpconversationAsyncsendV2Request.Msg msg new OapiMessageCorpconversationAsyncsendV2Request.Msg();msg.setMsgtype(text);msg.setText(new OapiMessageCorpconversationAsyncsendV2Request.Text());StringBuilder content new StringBuilder();content.append(系统地址 );content.append(sysUrl);content.append( );content.append(密码 );content.append(pwd);msg.getText().setContent(content.toString());request.setMsg(msg);try {OapiMessageCorpconversationAsyncsendV2Response result client.execute(request, token);if (result.isSuccess()) {return true;}// 调用接口异常输出异常信息logTool.saveExceptionLog(, DingUtils, sendMsg, JSON.toJSONString(result));} catch (Exception e) {// 调用接口异常输出异常信息logTool.saveExceptionLog(, DingUtils, sendMsg, e);}return false;} }2.3注意 ①获取的token有效期为2个小时有效期内重复获取会返回相同结果并自动续期过期后获取会返回新的access_token。开发者需要缓存access_token用于后续接口的调用。因为每个应用的access_token是彼此独立的所以进行缓存时需要区分应用来进行存储。不能频繁调用gettoken接口否则会受到频率拦截。 ②发送消息接口为异步发送消息接口返回成功并不表示用户一定会收到消息需要通过获取工作通知消息的发送结果接口查询是否给用户发送成功。 ③如果获取工作通知发送结果接口返回成功但用户还是没有接收到消息需要确认一下此用户是否在此钉钉关联的组织结构内。 ④可以给全部员工发送也可以给某个部门的人发送也可以给某几个人通过指定接收人的钉钉id发送消息。 ⑤注意对异常的捕捉并对消息进行记录。
http://www.dnsts.com.cn/news/257552.html

相关文章:

  • 网站编辑的岗位职责公寓注册公司需要什么条件
  • 优秀的电商设计网站青岛优化网站多少钱
  • 网站建设与维护里面的个人简历整站seo哪家服务好
  • cms网站模板套用教程广州市建设信息网
  • 做早餐的网站openresty wordpress
  • 金融网站如何做设计方案长沙网站设计
  • 网站美化网络营销专业大学
  • 淮安哪有专业做网站的公司四川通信建设工程有限公司网站
  • 网站广告图片设计教程盐山建网站
  • 电商网站硬件配置罗田企业网站建设
  • 互联网做视频网站需要许可证吗网页设计时尚页面
  • 房地产开发网站建设研发网站建设报价
  • 国内做音乐网站盲盒怎么制作教程
  • 做英文小说网站地图设计网站
  • 易县网站建设杭州网页设计培训机构
  • 平面设计相关的网站有哪些内容怎么在后台设计网站
  • 做教育网站挣钱西安官网优化技术
  • 四川省建设信息网站做外贸网站空间多少g
  • 有专门做电商网站的CMS吗ps网页设计说明书
  • 湖州哪里做网站企业信息查询app
  • 四川省建设厅网站官网海南在线分类信息
  • 西安市网站建设公司新建html网站
  • linux 什么做网站好百度怎么精准搜关键词
  • html5 wap网站制作网站的最大公司
  • 法拍重庆网站网站设计教程视频下载
  • 自贡住房和城乡建设厅网站网站制作价格便宜
  • 网站建设设计服务公司网站备案核验照片背景
  • 雇人做淘宝网站多少钱电子商务网站调研报告
  • 空间站天宫vr全景网络整合营销六大模型
  • 做网站数据需要的软件做网站具体流程步骤