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); }
/// <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); }
/// <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); }
/// <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>()); }
/// <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>()); }
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)); } }); }
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); }
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); }
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); }
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); }