Example #1
0
        public static void PushAndroidMsg(string pushtype, string isproduc, dynamic tagjsonobj, string starttime, string title, string content, string description, string thirdparty_id)
        {
            UMengMessagePush push     = new UMengMessagePush(AndAppk, AndAppsecret);//可以配置到web.config中
            PostUMengJson    postJson = new PostUMengJson();

            postJson.type            = pushtype;
            postJson.production_mode = isproduc;

            if (tagjsonobj != null)
            {
                postJson.filter = tagjsonobj;//不能传字符串
            }
            if (!string.IsNullOrWhiteSpace(starttime))
            {
                postJson.policy.start_time = starttime;
            }

            //android
            postJson.payload.extra.Add("ActivityId", thirdparty_id);
            postJson.payload.display_type    = "notification";
            postJson.payload.body.ticker     = "xxxx系统消息";
            postJson.payload.body.title      = title;   //"您的评论有回复了";
            postJson.payload.body.text       = content; // "我是内容";
            postJson.payload.body.after_open = "go_custom";
            postJson.payload.body.custom     = "comment-notify";
            postJson.payload.body.sound      = "";//如果该字段为空,采用SDK默认的声音

            postJson.description   = description;
            postJson.thirdparty_id = thirdparty_id;

            //ReturnJsonClass resu = push.SendMessage(postJson);
            //push.AsynSendMessage(postJson, callBack);
            push.AsynSendMessage(postJson, null);
        }
Example #2
0
        /// <summary>
        /// ios push
        /// </summary>
        /// <param name="isProduc">推送模式 groupcast broadcast</param>
        public static void PushIosMsg(PushType pushType, bool isProduc, dynamic tagjsonobj, string starttime, string title, string content, string description, string alias)
        {
            var push     = new UMengMessagePush("5d1c3c604ca3575ac2000a82", "idvcltvfmsd3qpvjnexdchrplgrvjgsc");//可以配置到web.config中
            var postJson = new PostUMengJson <IOSPayload>
            {
                PushType       = pushType,
                ProductionMode = isProduc
            };

            postJson.Payload.Aps.Alert.Body  = content;
            postJson.Payload.Aps.Alert.Title = title;
            postJson.Payload.Aps.Sound       = "default";
            postJson.Alias      = alias;
            postJson.Alias_Type = "LY_ZEUS";
            if (tagjsonobj != null)
            {
                postJson.Filter = tagjsonobj;//不能传字符串
            }
            if (!string.IsNullOrWhiteSpace(starttime))
            {
                postJson.Policy.Start_Time = starttime;
            }

            //postJson.Payload.Extra.Add("ActivityId", thirdparty_id);
            postJson.Description = description;
            //postJson.Thirdparty_Id = thirdparty_id;

            //ReturnJsonClass resu = push.SendMessage(postJson);
            var result = push.SendMessage(postJson);
        }
Example #3
0
        /// <summary>
        /// ios push
        /// </summary>
        /// <param name="isproduc">推送模式 groupcast broadcast</param>
        public static void PushIosMsg(string pushtype, string isproduc, dynamic tagjsonobj, string starttime, string title, string content, string description, string thirdparty_id)
        {
            UMengMessagePush push     = new UMengMessagePush(IosAppk, IosAppsecret);//可以配置到web.config中
            PostUMengJson    postJson = new PostUMengJson();

            postJson.type              = pushtype;
            postJson.production_mode   = isproduc;
            postJson.payload.aps.alert = content;
            postJson.payload.aps.sound = "default";
            if (tagjsonobj != null)
            {
                postJson.filter = tagjsonobj;//不能传字符串
            }
            if (!string.IsNullOrWhiteSpace(starttime))
            {
                postJson.policy.start_time = starttime;
            }

            postJson.payload.extra.Add("ActivityId", thirdparty_id);
            postJson.description   = description;
            postJson.thirdparty_id = thirdparty_id;

            //ReturnJsonClass resu = push.SendMessage(postJson);
            push.AsynSendMessage(postJson, null);
        }
Example #4
0
        /// <summary>
        /// 推送消息,注意如果初始化本类已经填写了appkey,
        /// <paramref name="paramsJsonObj"/> 里面的appkey会自动赋值
        /// 反之如果您填写了<paramref name="paramsJsonObj"/> 里面的appkey,将采用参数里面的值,忽略本类初始化值。
        /// </summary>
        /// <param name="paramsJsonObj"></param>
        /// <returns></returns>
        public ReturnJsonClass SendMessage <T>(PostUMengJson <T> paramsJsonObj) where T : class, new()
        {
            var req            = CreateHttpRequest(paramsJsonObj);
            var resultResponse = _requestClient.Execute(req);

            return(resultResponse.Content.ToJsonObj <ReturnJsonClass>());
        }
Example #5
0
        /// <summary>
        /// 异步推送消息,注意如果初始化本类已经填写了appkey,
        /// <paramref name="paramsJsonObj"/> 里面的appkey会自动赋值
        /// 反之如果您填写了<paramref name="paramsJsonObj"/> 里面的appkey,将采用参数里面的值,忽略本类初始化值。
        /// </summary>
        /// <param name="paramsJsonObj"></param>
        /// <param name="callback"></param>
        public void AsynSendMessage <T>(PostUMengJson <T> paramsJsonObj, Action <ReturnJsonClass> callback) where T : class, new()
        {
            var request        = CreateHttpRequest(paramsJsonObj);
            var resultResponse = _requestClient.Execute(request);

            callback?.Invoke(resultResponse.Content.ToJsonObj <ReturnJsonClass>());
        }
Example #6
0
        public void TestPushByAllUser()
        {
            PostUMengJson postJson = new PostUMengJson();

            postJson.production_mode = "false";   //开发环境
            postJson.type            = "unicast"; //单播
            postJson.device_tokens   = "8ebc607753ee042e38492f9d8e6bf13c07ae6cff54fa4c1d10d34aa1425e4d1e";

            postJson.payload = new Payload()
            {
                aps = new Aps {
                    alert = "你好啊!来自朱勇的问候" + " 这是异步方法!", badge = "1", sound = "beep.wav"
                }
            };

            //异步方法
            umPush.AsynSendMessage(postJson, callBack);


            //var resu = umPush.SendMessage(postJson);

            //if (resu.ret == "SUCCESS")
            //{
            //    Console.WriteLine("发送成功!");
            //}
            //else
            //{
            //    Console.WriteLine("发送失败!");
            //}
        }
        /// <summary>
        /// 推送消息,注意如果初始化本类已经填写了appkey,
        /// <paramref name="paramsJsonObj"/> 里面的appkey会自动赋值
        /// 反之如果您填写了<paramref name="paramsJsonObj"/> 里面的appkey,将采用参数里面的值,忽略本类初始化值。
        /// </summary>
        /// <param name="paramsJsonObj"></param>
        /// <returns></returns>
        public ReturnJsonClass SendMessage(PostUMengJson paramsJsonObj)
        {
            var             request        = CreateHttpRequest(paramsJsonObj);
            var             resultResponse = requestClient.Execute(request);
            ReturnJsonClass rjs            = SimpleJson.DeserializeObject <ReturnJsonClass>(resultResponse.Content);

            return(rjs);
        }
        /// <summary>
        /// 异步推送消息,注意如果初始化本类已经填写了appkey,
        /// <paramref name="paramsJsonObj"/> 里面的appkey会自动赋值
        /// 反之如果您填写了<paramref name="paramsJsonObj"/> 里面的appkey,将采用参数里面的值,忽略本类初始化值。
        /// </summary>
        /// <param name="paramsJsonObj"></param>
        /// <param name="callback"></param>
        public void AsynSendMessage(PostUMengJson paramsJsonObj, Action <ReturnJsonClass> callback)
        {
            var request = CreateHttpRequest(paramsJsonObj);

            requestClient.ExecuteAsync(request, resultResponse =>
            {
                if (callback != null)
                {
                    callback(SimpleJson.DeserializeObject <ReturnJsonClass>(resultResponse.Content));
                }
            });
        }
Example #9
0
        private string InitParamsAndUrl <T>(PostUMengJson <T> paramsJsonObj) where T : class, new()
        {
            if (string.IsNullOrEmpty(paramsJsonObj.Appkey))
            {
                paramsJsonObj.Appkey = _appkey;
            }
            var json     = paramsJsonObj.ToJson(true, CaseType.Lower);
            var calcSign = HashEncryptHepler.MD5Hash(_requestMethod + _apiFullUrl + json + _appMasterSecret).ToLower();

            _apiFullUrl = string.Format("{0}?sign={1}", _apiFullUrl, calcSign);
            return(json);
        }
        public static (bool, string) UMSendMessage(bool sendAll, PostUMengJson mengJson, Dictionary <string, string> headersDic = null)
        {
            string url;

            if (!sendAll)
            {
                url = "/api/umSend/PushByAlias";
            }
            else
            {
                url = "/api/umSend/PushByAllUser";
            }
            return(Send(mengJson, url, headersDic));
        }
        private RestRequest CreateHttpRequest(PostUMengJson paramsJsonObj)
        {
            string bodyJson = InitParamsAndUrl(paramsJsonObj);

            if (requestClient == null)
            {
                requestClient           = new RestClient(apiFullUrl);
                requestClient.Encoding  = Encoding.UTF8;
                requestClient.UserAgent = USER_AGENT;
            }
            var request = new RestRequest(Method.POST);

            request.RequestFormat = DataFormat.Json;
            request.AddParameter("application/json", bodyJson, ParameterType.RequestBody);
            return(request);
        }
Example #12
0
        public void TestPushByAlias()
        {
            PostUMengJson postJson = new PostUMengJson();

            postJson.type       = "customizedcast";
            postJson.alias_type = "USER_ID";
            postJson.alias      = "5583";
            postJson.payload    = new Payload()
            {
                aps = new Aps {
                    alert = "你好啊!来自朱勇的问候", badge = "1", sound = "beep.wav"
                }
            };


            umPush.AsynSendMessage(postJson, callBack);
        }
Example #13
0
        private string InitParamsAndUrl(PostUMengJson paramsJsonObj)
        {
            if (string.IsNullOrEmpty(paramsJsonObj.appkey))
            {
                paramsJsonObj.appkey = this.appkey;
            }

            paramsJsonObj.timestamp = ConvertDateTimeInt(DateTime.Now).ToString();//获取时间戳

            //string json = RestSharp.SimpleJson.SerializeObject(paramsJsonObj);
            Newtonsoft.Json.JsonSerializerSettings jssetting = new Newtonsoft.Json.JsonSerializerSettings();
            jssetting.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(paramsJsonObj, jssetting);

            string calcSign = md5.GenerateMD5(requestMethod + apiFullUrl + json + appMasterSecret).ToLower();

            this.apiFullUrl = string.Format("{0}?sign={1}", this.apiFullUrl, calcSign);

            return(json);
        }
Example #14
0
        private RestRequest CreateHttpRequest <T>(PostUMengJson <T> paramsJsonObj) where T : class, new()
        {
            string bodyJson = InitParamsAndUrl(paramsJsonObj);

            if (_requestClient == null)
            {
                _requestClient = new RestClient(new RestClientOptions {
                    Encoding = Encoding.UTF8, UserAgent = USER_AGENT, BaseUrl = new Uri(_apiFullUrl)
                });
            }
            var request = new RestRequest()
            {
                RequestFormat = DataFormat.Json,
                Method        = Method.Post,
            };

            request.AddParameter("application/json", bodyJson, ParameterType.RequestBody);
            //request.AddJsonBody(paramsJsonObj);
            return(request);
        }
        public void TestPushByAlias()
        {
            PostUMengJson postJson = new PostUMengJson();

            postJson.type                    = "customizedcast";
            postJson.alias_type              = "USER_ID";
            postJson.alias                   = "5583";
            postJson.payload                 = new Payload();
            postJson.payload.display_type    = "notification";
            postJson.payload.body            = new ContentBody();
            postJson.payload.body.ticker     = "评论提醒Alias";
            postJson.payload.body.title      = "您的评论有回复";
            postJson.payload.body.text       = "Alias您的评论有回复咯。。。。。";
            postJson.payload.body.after_open = "go_custom";
            postJson.payload.body.custom     = "comment-notify";

            postJson.thirdparty_id = "COMMENT";

            postJson.description = "评论提醒-UID:" + 5583;

            //ReturnJsonClass resu = umPush.SendMessage(postJson);

            umPush.AsynSendMessage(postJson, callBack);
        }
        public void TestPushByAllUser()
        {
            PostUMengJson postJson = new PostUMengJson();

            postJson.type    = "broadcast";
            postJson.payload = new Payload();
            postJson.payload.display_type    = "notification";
            postJson.payload.body            = new ContentBody();
            postJson.payload.body.ticker     = "评论提醒";
            postJson.payload.body.title      = "您的评论有回复";
            postJson.payload.body.text       = "您的评论有回复咯。。。。。";
            postJson.payload.body.after_open = "go_custom";
            postJson.payload.body.custom     = "comment-notify";

            postJson.description = "评论提醒-UID:" + 123;

            postJson.thirdparty_id = "COMMENT";

            ReturnJsonClass resu = umPush.SendMessage(postJson);

            //umPush.SendMessage(postJson, callBack);

            Assert.AreEqual(resu.ret, "SUCCESS", true);
        }