C#发送内容到钉钉消息
一、前提工作:配置钉钉机器人
见链接:https://star-302.blog.csdn.net/article/details/135649084
下边的代码,钉钉安全设置使用“自定义关键词”
二、以text格式发送消息到钉钉
using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using static System.Net.Mime.MediaTypeNames; class Program { static async Task Main(string[] args) { // 钉钉机器人的Webhook URL string webhookUrl = "https://oapi.dingtalk.com/robot/send?access_token=6fbcb84ec92786c94f8513c0338a88aca9dfaaf56ddbeef40ddfgdf52451c";//这里是钉钉机器人复制过来的 // 自定义关键字 string customKeyword = "MY_CUSTOM_KEYWORD";//钉钉机器人安全设置中配置 //**方法一:text格式 * *" // 测试者和当前时间 string tester = "张三"; DateTime testTime = DateTime.Now; 测试结果 string functionalTest = "失败"; // 构建消息内容,将关键字嵌入到消息体中 var content = new { msgtype = "text", keyword = customKeyword, text = new { content = $"测试: {customKeyword}\r\n" + $"测试者:{tester}\r\n" + $"当前时间:{testTime}\r\n" + $"测试结果:{functionalTest}\r\n" }, at = new { atMobiles = new string[] { }, isAtAll = true } }; // 序列化JSON数据 string jsonContent = JsonConvert.SerializeObject(content); // 发送POST请求 using (var client = new HttpClient()) { var requestContent = new StringContent(jsonContent, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(webhookUrl, requestContent); if (!response.IsSuccessStatusCode) { Console.WriteLine($"Failed to send message: {response.StatusCode}"); } else { Console.WriteLine("Message sent successfully."); } } Console.ReadLine(); } }
测试结果:
三、以markdown格式发送消息到钉钉
using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using static System.Net.Mime.MediaTypeNames; class Program { static async Task Main(string[] args) { // 钉钉机器人的Webhook URL string webhookUrl = "https://oapi.dingtalk.com/robot/send?access_token=6fbcb84ec92786c94f8513c0338a88acab76aae52451c"; // 自定义关键字 string customKeyword = "MY_CUSTOM_KEYWORD"; //**方法二:markdown格式**" // 测试者和当前时间 string tester = "张三"; DateTime testTime = DateTime.Now; // 测试结果 bool functionalTest = true; // 构建Markdown消息 string markdownText = $@" #### 测试结果{customKeyword}: - **测试者**: {tester} - **当前时间**: {testTime:yyyy-MM-dd HH:mm:ss} - **测试结果**: {(functionalTest ? "**<font color='#008000'>SUCCESS</font>**" : "**<font color='#FF0000'>FAIL</font>**")} ";
//测试结果加粗、SUCCESS绿色显示,FAIL红色显示 // 构建消息内容 var content = new { msgtype = "markdown", keyword = customKeyword, markdown = new { title = "测试结果", text = markdownText }, at = new { atMobiles = new string[] { }, isAtAll = true } }; // 序列化JSON数据 string jsonContent = JsonConvert.SerializeObject(content); // 发送POST请求 using (var client = new HttpClient()) { var requestContent = new StringContent(jsonContent, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(webhookUrl, requestContent); if (!response.IsSuccessStatusCode) { Console.WriteLine($"Failed to send message: {response.StatusCode}"); } else { Console.WriteLine("Message sent successfully."); } } Console.ReadLine(); } }
测试结果: