前言:有时候你需要对一些业务或者服务提供消息提醒,用邮件有时候比较麻烦,或者不够直接,就可以考虑使用钉钉机器人的形式来自动发送通知消息。下面我演示一个使用.NET程序来和钉钉机器人交互的例子。
钉钉群里面,手动添加机器人,选择webhook机器人
使用加签的方式来设置安全权限

webhook地址是我们需要访问的api地址。实际上你把它当成是一个webapi的url地址来理解也可以,因为后面咱们访问的方式差不多。
创建一个.NET程序做实验
查看钉钉上面解释的加签的使用方式
咱们手动创建一个使用该加密要求的类和方法
再创建一个类,里面提供一个调用钉钉机器人的具体实现方法
然后调用该发送消息的方法,返回成功,并且钉钉机器人成功发送了一条刚才测试的消息内容。
核心代码:
public void SendMessage()
{
try
{
long timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
string secret = Secret;
string stringToSign = $\"{timestamp}\n{secret}\";
string sign = HmacSHA256Helper.HmacSHA256(secret, timestamp);
// 构建请求URL,包含签名和时间戳
string requestUrl = $\"{RobotUrl}&sign={sign}×tamp={timestamp}\";
// 创建HttpClient和发送请求
using (var client = new HttpClient())
{
var requestContent = new
{
msgtype = \"text\",
text = new { content = \"这是一条来自.NET测试发来的消息,如有打扰,请群友们见谅~\" }
};
var json = JsonSerializer.Serialize(requestContent);
var content = new StringContent(json, Encoding.UTF8, \"application/json\");
HttpResponseMessage response = client.PostAsync(requestUrl, content).Result;
string result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
}
catch (Exception ex)
{
Console.WriteLine($\"An error occurred: {ex.Message}\");
}
}
如果需要以上我测试的机器人发消息的源码,也可以在公众号后台回复 \"钉钉发消息源码\"即可获取。