private static string SendDingDingMsg(RobotSetting setting, string content) { long timestamp = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds; string strSign = timestamp + "\n" + setting.Secret; string sign = string.Empty; using (var hmacsha256 = new HMACSHA256(Encoding.UTF8.GetBytes(setting.Secret))) { byte[] hashmessage = hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(strSign)); sign = HttpUtility.UrlEncode(Convert.ToBase64String(hashmessage), Encoding.UTF8); } IDingTalkClient client = new DefaultDingTalkClient($"{setting.SendUrl}×tamp={timestamp}&sign={sign}"); OapiRobotSendRequest.TextDomain text = new OapiRobotSendRequest.TextDomain() { Content = content }; OapiRobotSendRequest request = new OapiRobotSendRequest() { Msgtype = "text", Text_ = text }; OapiRobotSendResponse response = client.Execute(request); return(response.Body); }
/// <summary> /// 发送钉钉消息 /// </summary> /// <param name="serverUrl">服务地址</param> /// <param name="message">消息内容</param> /// <param name="atMobiles">@手机号</param> /// <returns></returns> public static string SendMessage(string serverUrl, string message, params string[] atMobiles) { try { if (!message.IsValid()) { return("消息内容不能为空"); } var client = GetClient(serverUrl); if (null == client) { return("获取客户端实例失败"); } var textDomain = new OapiRobotSendRequest.TextDomain { Content = message.GetValue(), }; var request = new OapiRobotSendRequest { Msgtype = "text", Text_ = textDomain, }; if (!atMobiles.IsEmpty()) { request.At_ = new OapiRobotSendRequest.AtDomain { AtMobiles = atMobiles.ToList(), }; } var response = client.Execute(request); if (null == response || response.IsError) { return($"发送消息失败:{(response?.ErrMsg).GetValue("未知")}"); } return(string.Empty); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// 发送自定义机器人消息(text类型) /// </summary> /// <param name="access_token"></param> /// <param name="content"></param> /// <param name="mobiles"></param> public static bool SendTextMsg(string access_token, string content, List <string> mobiles) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=" + access_token); OapiRobotSendRequest request = new OapiRobotSendRequest(); request.Msgtype = "text"; OapiRobotSendRequest.TextDomain text = new OapiRobotSendRequest.TextDomain(); text.Content = content; request.Text_ = text; OapiRobotSendRequest.AtDomain at = new OapiRobotSendRequest.AtDomain(); at.AtMobiles = mobiles; request.At_ = at; OapiRobotSendResponse response = client.Execute(request); if (response.Errcode == 0) { return(true); } return(false); }