/// <summary> /// 获取消息类型 /// </summary> /// <param name="messageType"></param> /// <returns></returns> public static string GetMessageType(AprilEnums.MessageType messageType) { string type = string.Empty; switch (messageType) { case AprilEnums.MessageType.Text: type = "text"; break; case AprilEnums.MessageType.Image: type = "image"; break; } return(type); }
/// <summary> /// 消息推送 /// </summary> /// <param name="content">文本内容</param> /// <param name="range">推送范围</param> /// <param name="messageType">消息类型</param> /// <returns></returns> public static bool SendMessage(string content, MessageRange range, AprilEnums.MessageType messageType) { bool isSend = false; if (string.IsNullOrEmpty(content) || content.Length > 2048 || range == null) { return(false); } string accessToken = GetAccessToken(); if (string.IsNullOrEmpty(accessToken)) { return(false); } string url = $"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={accessToken}"; StringBuilder data = new StringBuilder(); bool isVaildRange = false; if (range.IsAll) { data.Append($"\"touser\":\"@all\""); isVaildRange = true; } else { if (range.Users != null && range.Users.Count > 0) { data.AppendFormat("\"touser\" : {0}", GetRangeValue(range.Users)); isVaildRange = true; } if (range.Tags != null && range.Tags.Count > 0) { if (data.Length > 0) { data.Append(","); } data.AppendFormat("\"totag\" : {0}", GetRangeValue(range.Tags)); isVaildRange = true; } if (range.Departments != null && range.Departments.Count > 0) { if (data.Length > 0) { data.Append(","); } data.AppendFormat("\"totag\" : {0}", GetRangeValue(range.Departments)); isVaildRange = true; } } if (!isVaildRange) { //没有发送范围 return(false); } data.AppendFormat(",\"msgtype\":\"{0}\"", GetMessageType(messageType)); data.AppendFormat(",\"agentid\":\"{0}\"", AgentID); data.Append(",\"text\": {"); data.AppendFormat("\"content\":\"{0}\"", content); data.Insert(0, "{"); data.Append("}}"); LogUtil.Debug($"获取到发送消息请求:{data.ToString()}"); string res = RequestUtil.HttpPost(url, data.ToString(), "application/json"); LogUtil.Debug($"获取到发送消息回调:{res}"); return(false); }