首页 > 其他分享 >如何使用钉钉群机器人给钉钉群发送消息

如何使用钉钉群机器人给钉钉群发送消息

时间:2024-07-16 10:57:02浏览次数:10  
标签:string stringBuffer actionCard 机器人 发送 消息 timestamp new append

钉钉群添加自定义机器人

群内添加自定义机器人,从自定义配置中获取到secret以及accessToken

代码调用

		Long timestamp = System.currentTimeMillis();
        String secret = "secret";
        String accessToken = "accessToken";
        String stringToSign = timestamp + "\n" + secret;
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
        byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
        String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");
        StringBuffer stringBuffer=new StringBuffer();
        stringBuffer.append("https://oapi.dingtalk.com/robot/send?access_token=").append(accessToken);
        //stringBuffer.append("&timestamp=").append(timestamp);
        // stringBuffer.append("&sign=").append(sign);
        System.out.println(stringBuffer.toString());
        //sign字段和timestamp字段必须拼接到请求URL上,否则会出现 310000 的错误信息
        DingTalkClient client = new DefaultDingTalkClient(stringBuffer.toString());
        //参数	类型	必选	说明
        //msgtype	string	true	此消息类型为固定actionCard
        //title	string	true	首屏会话透出的展示内容
        //text	string	true	markdown格式的消息
        //btns	array	true	按钮的信息:title-按钮方案,actionURL-点击按钮触发的URL
        //btnOrientation	string	false	0-按钮竖直排列,1-按钮横向排列
        //hideAvatar	string	false	0-正常发消息者头像,1-隐藏发消息者头像
		//支持多种request方式
        OapiRobotSendRequest.Actioncard actionCard = new OapiRobotSendRequest.Actioncard();
        actionCard.setTitle("杭州天气");
        actionCard.setText("#### 杭州天气 @156xxxx8827\n" +
                "> 9度,西北风1级,空气良89,相对温度73%\n\n" +
                "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n"  +
                "> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n");
        // 此处默认为0
        actionCard.setBtnOrientation("0");
        // 此处默认为0
        actionCard.setHideAvatar("0");
        OapiRobotSendRequest request = new OapiRobotSendRequest();
        request.setMsgtype("actionCard");
        request.setActionCard(actionCard);
        OapiRobotSendResponse rsp = client.execute(request);
        System.out.println(rsp.getBody());

标签:string,stringBuffer,actionCard,机器人,发送,消息,timestamp,new,append
From: https://www.cnblogs.com/BitX/p/18304735

相关文章

  • 邮件发送与使用thymeleaf引擎重置密码邮件
    邮件发送原生java-mail进行邮件发送;前提:先登录邮箱,开启POP3/SMTP服务,使第三方可以使用授权码登录邮箱。@TestpublicvoidsendEmail(){Stringaccount="[email protected]";Stringpwd="KXNZHOZDMLTVWHOZ";//设置SMTP请求头Pr......
  • websocket的基本使用,与消息推送的一般设计
    本文章需要先阅读前面写的Bus事件,传送门:https://editor.csdn.net/md/?articleId=139666035//Bus事件,传送门:https://editor.csdn.net/md/?articleId=139666035importBusfrom"@/utils/Bus";//全局config的ws异常事件名import{websocketErrorEventName}from"@/conf......
  • Franka Robot 如何理解机器人的笛卡尔阻抗运动
    在笛卡尔阻抗模式下,用手将机器人移动到一个新位置后,机器人的行为取决于其控制参数(刚度、阻尼、质量)的设定和外部力的作用。当你将机器人移动到一个新位置并释放它时,以下是可能的情况:高刚度情况下如果机器人的刚度(Stiffness)参数设置较高,意味着机器人对位置偏差有很强的恢复力。当......
  • zookeeper+kafka消息队列群集部署
    目录消息队列1:什么是消息队列2:消息队列的特征3:为什么需要消息队列Kafka基础与入门1:kafka基本概念2:kafka角色术语3:kafka拓扑架构4:Topic和partition5:Producer生产机制6:Consumer消费机制zookeeper概念介绍1:zookeeper应用举例2:zookeeper的工作原理是什么?3:zookeeper......
  • Epson机器人编程初级阶(三)
    TCP通讯案例1.调用函数'TCP通讯案例GlobalStringX1$,Y1$,Z1$,U1$'定义全局变量FunctionTCP1Callinition'初始化程序,打开电源设置速度等CallNetConnet'建立连接DoCallData'调用接收数据函数GoXY(Val(X1$),Val(Y1$),Val(Z1......
  • Epson机器人编程初级阶(二)
    Wait等待时间与信号控制,时间默认单位是秒WaitSw(0)=On:等待输入0变为On状态Wait60.5:等待60.5秒后执行WaitSw(0)=OffAndSw(1)=On:等待输入0变为Off并且出入1变为On状态WaitMemsw(0)=OnOrMemsw(1)=On:等待储存位0变为啥On或存储位1变为On状态Wait1;On1:等待1......
  • 为什么执行代码,烧入程序之后,电脑对单片机发送数据,但是单片机不反应
    #include"stm32f10x.h"      #include"Uart.h"#include<stdio.h>#include<stdarg.h>u8USART1_RX_BUF[64];  //接收缓冲,最大64个字节.//接收状态//bit7,接收完成标志//bit6,接收到0x0d//bit5~0,接收到的有效字节数目u16USART1_RX_STA=0;   ......
  • HTTP请求的发送:构建与传输的详细剖析
    摘要在网络通信的世界里,HTTP(超文本传输协议)是构建Web应用的基石。HTTP请求是客户端与服务器通信的语言。本文将深入探讨HTTP请求的发送过程,从构建请求到通过TCP/IP协议栈传输的每个细节。1.HTTP请求概述介绍HTTP请求的基本概念和作用。解释HTTP请求与响应的通信模式。2......
  • 分别给【测试计划】、【线程组】、【取样器】设置配置元件--用户定义的变量,发送请求,生
    在jmeter中,测试计划、线程组、取样器都可以添加配置元件---用户定义的变量,那么我们在实际发送请求的时候,使用的是哪个变量呢?使用的是取样器定义的变量1.测试计划2.线程组3.取样器发送请求,使用的accounts的值为取样器的apitest21jmeter寻找变量的顺序是:测试计划--->线程......
  • Simple WPF: WPF使用Windows API发送Toast通知
    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。创作不易,如果觉得有用请在Github上为博主点亮一颗小星星吧!以前看到Windows10的气泡通知觉得很有意思,但是一直不知道该如何实现。最近一次上网冲浪过程中偶然的机会看到了相关资料就自己来试试。本文介绍了在WPF......