Asp.Net Core 对接钉钉群机器人

目录

钉钉新建机器人

 机器人选择加签模式

代码应用

测试效果


 

   由于最近小编有一项对接钉钉的接口去做,所以利用这个机会把配置钉钉机器人的方法在这里分享一下,主要应用机器人发送提醒消息使用

1.首先你要有个钉钉群,然后打开右上角设置

  • 钉钉新建机器人

添加机器人

 

 

 

 

  •  机器人选择加签模式

在这里要记住Webhook和加签的秘钥,因为后续我们在代码中会使用到

  • 代码应用


#region 钉钉加签

// 获取毫秒时间戳
long shijianchuo = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
//webhook   机器人的token    
string Webhook = "xxx.xxx.xxx?access_token=xxx";
//加签 签名
string Secret = "*************";
// 获取签名值
string sign = addSign(shijianchuo, Secret);


string url = $"{Webhook}&timestamp={shijianchuo}&sign={sign}";

SendTemplate obj = new SendTemplate
{
    msgtype = "text",
    text = new SendContent
    {
        content = "测试消息内容",//这里是消息内容
    }
};

var json = JsonConvert.SerializeObject(obj);
Console.WriteLine(url);

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Accept", "application/json");
var response = await client.PostAsJsonAsync(url, obj);
response.EnsureSuccessStatusCode();

var result = await response.Content.ReadAsStringAsync();
var returvalue = JsonConvert.DeserializeObject<MessageTemplate>(result)!;
if (returvalue.errmsg.Equals("ok", StringComparison.OrdinalIgnoreCase))
{
    Console.Write($"发送成功");
}
else
{
    Console.Write($"发送失败");
}
Console.ReadKey();


/// <summary>
/// 加签
/// </summary>
/// <param name="zTime">当前时间戳</param>
/// <returns></returns>
string addSign(long zTime,string secret)
{
    
    string stringToSign = zTime + "\n" + secret;
    var encoding = new System.Text.ASCIIEncoding();
    byte[] keyByte = encoding.GetBytes(secret);
    byte[] messageBytes = encoding.GetBytes(stringToSign);
    using (var hmacsha256 = new HMACSHA256(keyByte))
    {
        byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
        return HttpUtility.UrlEncode(Convert.ToBase64String(hashmessage), Encoding.UTF8);
    }
}

#endregion

 在本代码中用到的模型

 public class SendTemplate
    {
        public string msgtype { get; set; } = "text";
        public SendContent text { get; set; } = default!;

    }
    public class SendContent
    {
        public string content { get; set; } = "消息的内容";
    }
    public class MessageTemplate
    {
        public int errcode { get; set; }
        public string errmsg { get; set; } = default!;
    }
  • 测试效果

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小小涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值