方法就是在群里面新建一个webhook机器人,他会默认有一个WEBHOOK,这个webhook里面就包含了这个accessToken

image.png
而这个鉴权,可以三个鉴权选项必须勾选一个 分别是包含关键词才能发送,加签,和ip段, 我这里用的最复杂的,秘钥设置 ,不过我顺便也勾选了自定义关键词 这里接口默认包含测试 ,故能直接发送成功。

image.png
public static string sendPostJSON(string url, string json)
{
/* var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, url);
request.Content = new StringContent(json, Encoding.UTF8, "application/json");
var response = client.SendAsync(request);
var responseContent = response.Content.ReadAsStringAsync();
*/
using (var httpClientHandler = new HttpClientHandler()) {
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => {
if (sslPolicyErrors == SslPolicyErrors.None) {
return true; //Is valid
}
return true;
};
using (var client = new HttpClient(httpClientHandler)) {
// 添加请求头
/* client.DefaultRequestHeaders.Add("User-Agent", "MyUserAgent");
client.DefaultRequestHeaders.Add("Authorization", "Bearer YourAccessToken");*/
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = client.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result;
return response;
}
}
}
[HttpGet("RobotPush")]
public string RobotPush(string accessToken= "45c3abbe8bd76ab7e9f65631f316da8c5f51b0e70ac7236843cad9bbf9148ca6", string secret= "SEC97e12d42afbceac6561d43de57061788bd61e467ccb6c65b8df66f033514ea26", string content="测试",string msgtype = "text", bool isAtAll = false, string password = "")
{
try {
long timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
string sign;
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret))) {
var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes($"{timestamp}\n{secret}"));
sign = Uri.EscapeDataString(Convert.ToBase64String(hash));
}
// https://oapi.dingtalk.com/robot/send?access_token=45c3abbe8bd76ab7e9f65631f316da8c5f51b0e70ac7236843cad9bbf9148ca5
string url = $"https://oapi.dingtalk.com/robot/send?access_token={accessToken}×tamp={timestamp}&sign={sign}";
JObject POST=new JObject();
POST["msgtype"] = msgtype;
JObject Text=new JObject();
Text["content"] = content;
JObject At = new JObject();
At["isAtAll"] = isAtAll;
POST["at"] = At;
POST["text"] = Text;
//post请求
return MyHttpUtil.sendPostJSON(url, POST.ToString());
//}
}
catch (Exception ex) {
JObject JOBJ = new JObject();
JOBJ["errorcode"] = -5;
JOBJ["errmsg"] = "访问接口失败!" + ex.Message;
return JOBJ.ToString();
}
}

image.png
完整发送教程文档自定义机器人发送群聊消息 - 钉钉开放平台
也可以参考别人写的案例进行反推写法 包含了发送markdown消息啥的python 调用钉钉机器人接口案例一则 —— 筑梦之路_python 钉钉机器人-CSDN博客