Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }