C# 钉钉WebHook机器人

官方连接

https://open.dingtalk.com/document/robots/custom-robot-access
添加Webhook机器人,我选择的安全方式是关键词==“消息”==

        static async Task SendMarkdownMessage(string webhookUrl, string title, string markdownContent)
    {
        using (HttpClient client = new HttpClient())
        {
            var payload = new
            {
                msgtype = "markdown",
                markdown = new
                {
                    title = title,
                    text = markdownContent
                }
            };

            string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(payload);
            var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

            var response = await client.PostAsync(webhookUrl, content);

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine("Markdown message sent successfully!");
            }
            else
            {
                Console.WriteLine("Failed to send Markdown message. Status code: " + response.StatusCode);
            }
        }
    }
    private async void  button1_Click(object sender, EventArgs e)
    {
        string webhookUrl = "https://oapi.dingtalk.com/robot/send?access_token=你自己的的token";
        string markdownContent = "# 消息 Hello, Markdown#![](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4099076061/p131227.png)";
        string title = "消息 Markdown Message";

        await SendMarkdownMessage(webhookUrl, title, markdownContent);
    }
}

但是这样有缺陷,不能发送本地文件

使用关键词有一个累赘词,还是比较讨厌的,虽然方式简单,下面使用加签的方式

   static async Task SendMarkdownMessage(string webhookUrl, string accessToken, string secret, string title, string markdownContent)
    {
        long timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
        string sign = ComputeSignature(secret, timestamp);

        string url = $"{webhookUrl}?access_token={accessToken}&timestamp={timestamp}&sign={sign}";

        using (HttpClient client = new HttpClient())
        {
            var payload = new
            {
                msgtype = "markdown",
                markdown = new
                {
                    title = title,
                    text = markdownContent
                }
            };

            string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(payload);
            var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

            var response = await client.PostAsync(url, content);

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine("Markdown message sent successfully!");
            }
            else
            {
                Console.WriteLine("Failed to send Markdown message. Status code: " + response.StatusCode);
            }
        }
    }

    static string ComputeSignature(string secret, long timestamp)
    {
        string stringToSign = $"{timestamp}\n{secret}";
        byte[] secretBytes = Encoding.UTF8.GetBytes(secret);
        byte[] stringToSignBytes = Encoding.UTF8.GetBytes(stringToSign);

        using (var hmac = new HMACSHA256(secretBytes))
        {
            byte[] hashBytes = hmac.ComputeHash(stringToSignBytes);
            return Convert.ToBase64String(hashBytes);
        }
    }
    private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private async void button1_Click(object sender, EventArgs e)
        {
            string webhookUrl = "https://oapi.dingtalk.com/robot/send";
            string accessToken = "自己的token";
            string secret = "设置加签后的密钥";

            string markdownContent = "# 使用加签无拘无束!![pic](https://p5.ssl.qhimgs1.com/sdr/400__/t01052dd2d43d8ee815.png)";
            string title = "Markdown Message";

            await SendMarkdownMessage(webhookUrl, accessToken, secret, title, markdownContent);
        }
    }
}

在这里插入图片描述

Python钉钉Webhook机器人是一种通过Webhook技术实现的自动发送消息到钉钉群组的工具。它可以通过Python编程语言快速配置和使用。 首先,我们需要在钉钉管理后台创建一个Webhook机器人,并获取相应的Webhook地址。然后,我们可以使用Python的requests库发送HTTP请求到这个Webhook地址,来触发消息的发送。 我们可以使用以下代码示例来实现一个Python钉钉Webhook机器人: ```python import requests import json def send_dingtalk_message(webhook_url, message): headers = { 'Content-Type': 'application/json', } data = { 'msgtype': 'text', 'text': { 'content': message, }, } response = requests.post(webhook_url, headers=headers, data=json.dumps(data)) if response.status_code == 200: print('消息发送成功') else: print('消息发送失败') # 使用示例 webhook_url = '钉钉机器人Webhook地址' message = '这是一条来自Python钉钉机器人的消息' send_dingtalk_message(webhook_url, message) ``` 上述代码中,我们定义了一个`send_dingtalk_message`函数,该函数接收Webhook地址和要发送的消息作为参数,并通过requests库发送POST请求。消息的内容由`text`字段中的`content`属性指定,这里指定的是`message`参数。 通过调用`send_dingtalk_message`函数,我们可以将指定的消息发送到钉钉群组中。如果消息发送成功,函数将输出"消息发送成功",否则输出"消息发送失败"。 总之,Python钉钉Webhook机器人可以帮助我们通过Python编程语言快速实现消息的发送和接收,方便进行钉钉群组的管理和交流。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值