钉钉机器人推送的用法

方法就是在群里面新建一个webhook机器人,他会默认有一个WEBHOOK,这个webhook里面就包含了这个accessToken

image.png

而这个鉴权,可以三个鉴权选项必须勾选一个 分别是包含关键词才能发送,加签,和ip段, 我这里用的最复杂的,秘钥设置 ,不过我顺便也勾选了自定义关键词 这里接口默认包含测试 ,故能直接发送成功。

image.png
public static string sendPostJSON(string url, string json)
        {

            /*        var client = new HttpClient();
                    var request = new HttpRequestMessage(HttpMethod.Post, url);
                    request.Content = new StringContent(json, Encoding.UTF8, "application/json");

                    var response =  client.SendAsync(request);
                    var responseContent =  response.Content.ReadAsStringAsync();
        */


            using (var httpClientHandler = new HttpClientHandler()) {
                httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => {
                    if (sslPolicyErrors == SslPolicyErrors.None) {
                        return true;   //Is valid
                    }

                    return true;
                };
                using (var client = new HttpClient(httpClientHandler)) {

                    // 添加请求头
                    /*                   client.DefaultRequestHeaders.Add("User-Agent", "MyUserAgent");
                                       client.DefaultRequestHeaders.Add("Authorization", "Bearer YourAccessToken");*/

                    var content = new StringContent(json, Encoding.UTF8, "application/json");
                    var response = client.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result;
                    return response;
                }

            }

        }

  [HttpGet("RobotPush")]
        public string RobotPush(string accessToken= "45c3abbe8bd76ab7e9f65631f316da8c5f51b0e70ac7236843cad9bbf9148ca6", string secret= "SEC97e12d42afbceac6561d43de57061788bd61e467ccb6c65b8df66f033514ea26",  string content="测试",string msgtype = "text", bool isAtAll = false, string password = "")
        {


            try {



                long timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                string sign;
                using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret))) {
                    var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes($"{timestamp}\n{secret}"));
                    sign = Uri.EscapeDataString(Convert.ToBase64String(hash));
                }
                // https://oapi.dingtalk.com/robot/send?access_token=45c3abbe8bd76ab7e9f65631f316da8c5f51b0e70ac7236843cad9bbf9148ca5
                string url = $"https://oapi.dingtalk.com/robot/send?access_token={accessToken}&timestamp={timestamp}&sign={sign}";
                JObject POST=new JObject();
                POST["msgtype"] = msgtype;
                JObject Text=new JObject();
                Text["content"] = content;
                JObject At = new JObject();
                At["isAtAll"] = isAtAll;
                POST["at"] = At;
                POST["text"] = Text;

                //post请求
                return MyHttpUtil.sendPostJSON(url, POST.ToString());
                //}
            }
            catch (Exception ex) {
                JObject JOBJ = new JObject();
                JOBJ["errorcode"] = -5;
                JOBJ["errmsg"] = "访问接口失败!" + ex.Message;
                return JOBJ.ToString();
            }

        }
image.png

鉴权参考自定义机器人安全设置 - 钉钉开放平台

完整发送教程文档自定义机器人发送群聊消息 - 钉钉开放平台

也可以参考别人写的案例进行反推写法 包含了发送markdown消息啥的python 调用钉钉机器人接口案例一则 —— 筑梦之路_python 钉钉机器人-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值