栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C#钉钉群机器人消息推送

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#钉钉群机器人消息推送

根据官方给的文档:

https://open.dingtalk.com/document/robots/custom-robot-access

安全设置中我采用的是加签方式
获得签名

private string addSign(long timestamp)
        {
            string secret1 = sectret;
            string stringToSign = timestamp + "n" + secret1;
            var encoding = new System.Text.ASCIIEncoding();
            byte[] keyByte = encoding.GetBytes(secret1);
            byte[] messageBytes = encoding.GetBytes(stringToSign);
            using (var hmacsha256 = new HMACSHA256(keyByte))
            {
                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
                return HttpUtility.UrlEncode(Convert.ToBase64String(hashmessage), Encoding.UTF8);
            }

推送方法

public bool PushData(List links, List subDatas)
        {
            string message = null;
            string[] strRevMessage = new string[4];
            long timestamp = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000);
            string sign = addSign(timestamp);           
            string url1 = url  + "×tamp=" + timestamp + "&sign=" + sign;
            strRevMessage = SenMsg(url1, 消息类型, 消息内容);
            sContent = "";
            if (strRevMessage[1] == "ok")
            {
                return true;
            }
            else
            {
                return false;
            }
        }
private string[] SenMsg(string Url, string Msgtype, string sContent)
        {
            var json_req = new
            {
                msgtype = Msgtype,
                text = new { content = sContent },
                //at = new { isAtAll = true }(是否@所有人)
            };
            string jsonRequest = JsonConvert.SerializeObject(json_req);
            string RevMsg = HttpPost(Url, jsonRequest);
            JObject job = (JObject)JsonConvert.DeserializeObject(RevMsg);
            string[] strRevMessage = new string[4];
            strRevMessage[0] = job["errcode"].ToString();
            strRevMessage[1] = job["errmsg"].ToString();
            strRevMessage[2] = jsonRequest;
            strRevMessage[3] = RevMsg;
            return strRevMessage;
        }
private string HttpPost(string url, string jsonRequest)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/json;charset=utf-8";
            req.Timeout = 20000;
            byte[] bs = Encoding.UTF8.GetBytes(jsonRequest);
            req.GetRequestStream().Write(bs, 0, bs.Length);
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader streamReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
            string responseContent = streamReader.ReadToEnd();
            streamReader.Close();
            resp.Close();
            req.Abort();
            return responseContent;
        }

随手记录,希望能够帮到你

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号