钉钉开发系列(十二)机器人

钉钉的每个群都可以建若干个机器人,有默认的比如github,也可以自定义。我们使用自定义,建立自己的机器人,然后得到一串的URL,只要向这个URL进行POST请求后,就能将消息通知到对应的群中。机器人的创建可以参照官方的文档

发送通知的代码如下

 private string WEB_HOOK = "https://oapi.dingtalk.com/robot/send?access_token=XXXXX";

        private void buttonTest_Click(object sender, EventArgs e)
        {
            try
            {
                string msg = textBox1.Text;
                String textMsg = "{ \"msgtype\": \"text\", \"text\": {\"content\": \"" + msg + "\"}}";
                string s = Post(WEB_HOOK, textMsg, null);
                MessageBox.Show(s);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        #region Post
        /// <summary>
        /// 以Post方式提交命令
        /// </summary>
        /// <param name="apiurl">请求的URL</param>
        /// <param name="jsonString">请求的json参数</param>
        /// <param name="headers">请求头的key-value字典</param>
        public static String Post(string apiurl, string jsonString, Dictionary<String, String> headers = null)
        {
            WebRequest request = WebRequest.Create(@apiurl);
            request.Method = "POST";
            request.ContentType = "application/json";
            if (headers != null)
            {
                foreach (var keyValue in headers)
                {
                    if (keyValue.Key == "Content-Type")
                    {
                        request.ContentType = keyValue.Value;
                        continue;
                    }
                    request.Headers.Add(keyValue.Key, keyValue.Value);
                }
            }

            if (String.IsNullOrEmpty(jsonString))
            {
                request.ContentLength = 0;
            }
            else
            {
                byte[] bs = Encoding.UTF8.GetBytes(jsonString);
                request.ContentLength = bs.Length;
                Stream newStream = request.GetRequestStream();
                newStream.Write(bs, 0, bs.Length);
                newStream.Close();
            }


            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();
            Encoding encode = Encoding.UTF8;
            StreamReader reader = new StreamReader(stream, encode);
            string resultJson = reader.ReadToEnd();
            return resultJson;
        }
        #endregion
通知结果如下图


其他消息的类型的可以参照官方文档生成数据即可。

欢迎打描左侧二维码打赏。

转载请注明明出处。


转载于:https://www.cnblogs.com/sparkleDai/p/7604902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值