吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4637|回复: 12
收起左侧

[其他转载] C#通过钉钉机器人加签后推送群消息

[复制链接]
liu8359 发表于 2020-10-26 11:32
钉钉机器人推送消息安全设置三选一(*)
关键字和IP限制都挺简单的。
image.png
然后加签官网没有C#的演示代码,只有java和python,在网上找了下C#的 Dingtalk_20201026111817.jpg
image.png

只需将Webhook加签密钥换了就可以了

[C#] 纯文本查看 复制代码
        static void Main(string[] args)
        {
            string result = "";
            //获取毫秒时间戳
            TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            long shijianchuo = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000);
            //获取签名值
            string sign = addSign(shijianchuo);
            string url = "Webhook&timestamp=" + shijianchuo + "&sign=" +sign;

            var obj = new
            {
                msgtype = "text",
                text = new
                {
                    content = "钉钉机器人加签测试",
                }

            };

            string json = JsonConvert.SerializeObject(obj);
            Console.WriteLine(url);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/json;charset=utf-8";
            Console.WriteLine(json);
 
            var bytes = Encoding.UTF8.GetBytes(json);
            req.ContentLength = bytes.Length;
            using (Stream requestStream = req.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
            }
 
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            //获取内容
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = reader.ReadToEnd();
            }
            Console.WriteLine(result);
 
            Console.ReadKey();
        
        }
        /// <summary>
        /// 加签
        /// </summary>
        /// <param name="zTime">当前时间戳</param>
        /// <returns></returns>
        private static string addSign(long zTime)
        {
            string secret = "加签密钥";
            string stringToSign = zTime + "\n" + secret;
            var encoding = new System.Text.ASCIIEncoding();
            byte[] keyByte = encoding.GetBytes(secret);
            byte[] messageBytes = encoding.GetBytes(stringToSign);
            using (var hmacsha256 = new HMACSHA256(keyByte))
            {
                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
                return HttpUtility.UrlEncode(Convert.ToBase64String(hashmessage), Encoding.UTF8);
            }
        }


蓝奏云:https://www.lanzoui.com/i18zhhqzsvc
钉钉机器人消息推送.zip (856.67 KB, 下载次数: 59)

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
yezhengw111 + 1 + 1 热心回复!
lene + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| liu8359 发表于 2021-6-21 14:03
tanglong001 发表于 2021-6-21 11:57
群主设置了成员不能@呢,我看到有其他群成员发DING的技术

这个是官方的开发文档https://developers.dingtalk.com/document/app/custom-robot-access
 楼主| liu8359 发表于 2022-4-19 08:14
goodtime 发表于 2022-4-15 11:46
大神,怎么设置自定义关键词回复呢?比如,问:帮助,答:打开群文件

关键字不是这样。是发送的消息带有关键字才会发到群里。不能接收关键字
zhukun1980 发表于 2020-10-26 13:07
这个有点意思挺好玩,适合监控家里老人孩子
 楼主| liu8359 发表于 2020-10-26 13:41
zhukun1980 发表于 2020-10-26 13:07
这个有点意思挺好玩,适合监控家里老人孩子

可以弄个服务,开机服务就跑着,多长时间发一次消息
gosling 发表于 2020-10-26 14:13
可以添加好友吗?我现在到写钉钉的对接!
tanglong001 发表于 2021-6-19 17:22
有钉钉群内群成员发DING的技术吗
 楼主| liu8359 发表于 2021-6-21 08:54
tanglong001 发表于 2021-6-19 17:22
有钉钉群内群成员发DING的技术吗

可以@他,ding没见过
tanglong001 发表于 2021-6-21 11:57
liu8359 发表于 2021-6-21 08:54
可以@他,ding没见过

群主设置了成员不能@呢,我看到有其他群成员发DING的技术
tanglong001 发表于 2021-6-22 11:37
liu8359 发表于 2021-6-21 14:03
这个是官方的开发文档https://developers.dingtalk.com/document/app/custom-robot-access

大佬,我不会,你会做吗,重谢
gregry 发表于 2022-1-14 14:50
这个应该是最简单的写法了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表