前言:有时候你需要对一些业务或者服务提供消息提醒,用邮件有时候比较麻烦,或者不够直接,就可以考虑使用钉钉机器人的形式来自动发送通知消息。下面我演示一个使用.NET程序来和钉钉机器人交互的例子。
钉钉群里面,手动添加机器人,选择webhook机器人
使用加签的方式来设置安全权限
webhook地址是我们需要访问的api地址。实际上你把它当成是一个webapi的url地址来理解也可以,因为后面咱们访问的方式差不多。
创建一个.NET程序做实验
查看钉钉上面解释的加签的使用方式
咱们手动创建一个使用该加密要求的类和方法
再创建一个类,里面提供一个调用钉钉机器人的具体实现方法
然后调用该发送消息的方法,返回成功,并且钉钉机器人成功发送了一条刚才测试的消息内容。
核心代码:
代码语言:javascript复制 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}");
}
}