public async Task <BaseResponse> SendMessageById([FromBody] PushMessageRequest request) { if (!MessageHub.connections.ContainsKey(request.ReceivedUserId.ToString())) { return(BaseResponse.GetBaseResponse(BusinessStatusType.LoginExpire)); } return(await _messageSer.SendMessageById(request)); }
/// <summary> /// Send message /// </summary> /// <param name="pushMessageRequest"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushMessage(PushMessageRequest pushMessageRequest) { if (pushMessageRequest.messages.Count > 5) { throw new ArgumentException("Only allow maximun 5 messages"); } return(await messageClient.PushMessage(pushMessageRequest)); }
public async Task <BaseResponse> PushMessage([FromBody] PushMessageRequest request) { var message = JsonSerializer.Serialize(request); _logger.LogInformation("PushMessage:" + message); await _hubcontext.Clients.Group(request.UserId.ToString()).SendAsync("PushMessage", message); return(BaseResponse.Ok()); }
/// <summary> /// Send message /// </summary> /// <param name="pushMessageRequest"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushMessage(PushMessageRequest pushMessageRequest) { if (pushMessageRequest == null) { throw new ArgumentNullException(nameof(PushMessageRequest)); } var request = new LinePostRequest <ResponseItem>(this, "bot/message/push"); return(await request.Execute(pushMessageRequest)); }
/// <summary> /// Send text message /// </summary> /// <param name="to"></param> /// <param name="message"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushTextMessage(string to, string message) { var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { new TextMessage(message) } }; return(await messageClient.PushMessage(pushMessageRequest)); }
/// <summary> /// Send location message /// </summary> /// <param name="to"></param> /// <param name="title"></param> /// <param name="address"></param> /// <param name="latitude"></param> /// <param name="longitude"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushLocationMessage(string to, string title, string address, decimal latitude, decimal longitude) { var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { new LocationMessage(title, address, latitude, longitude) } }; return(await messageClient.PushMessage(pushMessageRequest)); }
/// <summary> /// Send sticker message /// </summary> /// <param name="to"></param> /// <param name="packageId"></param> /// <param name="stickerId"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushStickerMessage(string to, int packageId, int stickerId) { var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { new StickerMessage(packageId, stickerId) } }; return(await messageClient.PushMessage(pushMessageRequest)); }
/// <summary> /// Send image map messages /// </summary> /// <param name="to"></param> /// <param name="imageMapMessages"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushImageMapMessage(string to, ImageMapMessage imageMapMessages) { var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { imageMapMessages } }; return(await messageClient.PushMessage(pushMessageRequest)); }
/// <summary> /// 进行消息推送 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <BaseResponse> SendMessageById(PushMessageRequest request) { MessageViewModel thisMessage = JsonConvert.DeserializeObject <MessageViewModel>(JsonConvert.SerializeObject(request)); List <MessageViewModel> messageList = new List <MessageViewModel> { thisMessage }; string content = JsonConvert.SerializeObject(messageList); _logger.LogInformation("系统消息已发送ID:" + request.ReceivedUserId + "内容:" + content); await _hubcontext.Clients.Client(MessageHub.connections[request.ReceivedUserId.ToString()]).SendAsync("sendMessage", content); return(BaseResponse.GetBaseResponse(BusinessStatusType.OK)); }
public void PushTextMessageRequest_JsonFormatTest() { PushMessageRequest request = new PushMessageRequest() { to = "user id", messages = new List <Message>() { new TextMessage("text") } }; // Verify Assert.AreEqual <string>(JsonConvert.SerializeObject(request, Formatting.None, jsonSettings), "{\"to\":\"user id\",\"messages\":[{\"type\":\"text\",\"text\":\"text\"}]}"); }
/// <summary> /// Send audio message /// </summary> /// <param name="to"></param> /// <param name="originalContentUrl">URL of audio file (Max: 1000 characters),HTTPS,m4a,Max: 1 minute,Max: 10 MB</param> /// <param name="duration">Length of audio file (milliseconds)</param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushAudioMessage(string to, string originalContentUrl, int duration) { Uri _originalContentUrl = new Uri(originalContentUrl); var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { new AudioMessage(_originalContentUrl, duration) } }; return(await messageClient.PushMessage(pushMessageRequest)); }
/// <summary> /// Send video message /// </summary> /// <param name="to"></param> /// <param name="originalContentUrl">URL of video file (Max: 1000 characters) ,HTTPS,mp4,Max: 1 minute,Max: 10 MB</param> /// <param name="previewImageUrl">URL of preview image (Max: 1000 characters),HTTPS,JPEG,Max: 240 x 240,Max: 1 MB</param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushVideoMessage(string to, string originalContentUrl, string previewImageUrl) { Uri _originalContentUrl = new Uri(originalContentUrl); Uri _previewImageUrl = new Uri(previewImageUrl); var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { new VideoMessage(_originalContentUrl, _previewImageUrl) } }; return(await messageClient.PushMessage(pushMessageRequest)); }
/// <summary> /// Send image message /// </summary> /// <param name="to"></param> /// <param name="imageContentUrl"></param> /// <param name="imagePreviewUrl"></param> /// <returns></returns> public async Task <LineClientResult <ResponseItem> > PushImageMessage(string to, string imageContentUrl, string imagePreviewUrl) { Uri imgContentUrl = new Uri(imageContentUrl); Uri imgePreviewUrl = new Uri(imagePreviewUrl); var pushMessageRequest = new PushMessageRequest() { to = to, messages = new List <Message>() { new ImageMessage(imgContentUrl, imgePreviewUrl) } }; return(await messageClient.PushMessage(pushMessageRequest)); }
public JsonResult PushMessage(PushMessageRequest request) { try { var webPushClient = new WebPushClient(); var subscription = new PushSubscription(request.Subscription.Endpoint, request.Subscription.Keys.P256dh, request.Subscription.Keys.Auth); // STEP 5: Send PushMessage to Push Service webPushClient.SendNotification(subscription, request.Payload, _vapidDetails); } catch (WebPushException exception) { return(Json(new { Ok = false, Error = $"HTTP status code: {exception.StatusCode}" })); } return(Json(new { Ok = true })); }
public void PushVideoMessageRequest_JsonFormatTest() { string originalContentUrl = "https://test.mp4"; string previewImageUrl = "https://test.jpg"; PushMessageRequest request = new PushMessageRequest() { to = "user id", messages = new List <Message>() { new VideoMessage(new Uri(originalContentUrl), new Uri(previewImageUrl)) } }; // Verify Assert.AreEqual <string>(JsonConvert.SerializeObject(request, Formatting.None, jsonSettings), "{\"to\":\"user id\",\"messages\":[{\"type\":\"video\",\"originalContentUrl\":\"https://test.mp4\",\"previewImageUrl\":\"https://test.jpg\"}]}"); }
public void PushAudioMessageRequest_JsonFormatTest() { int duration = 4000; string orginallyContentUrl = "https://test.m4a"; PushMessageRequest request = new PushMessageRequest() { to = "user id", messages = new List <Message>() { new AudioMessage(new Uri(orginallyContentUrl), duration) } }; // Verify Assert.AreEqual <string>(JsonConvert.SerializeObject(request, Formatting.None, jsonSettings), "{\"to\":\"user id\",\"messages\":[{\"type\":\"audio\",\"originalContentUrl\":\"https://test.m4a\",\"duration\":4000}]}"); }
public void PushLocationMessageRequest_JsonFormatTest() { string title = "my location"; string address = "¢E150-0002 ªF¨Ê³£¯A¨¦°Ï2¤B¤ì21-1"; decimal latitude = 35.65910807942215M; decimal longitude = 139.70372892916203M; PushMessageRequest request = new PushMessageRequest() { to = "user id", messages = new List <Message>() { new LocationMessage(title, address, latitude, longitude) } }; // Verify Assert.AreEqual <string>(JsonConvert.SerializeObject(request, Formatting.None, jsonSettings), "{\"to\":\"user id\",\"messages\":[{\"type\":\"location\",\"latitude\":35.65910807942215,\"longitude\":139.70372892916203,\"title\":\"my location\",\"address\":\"¢E150-0002 ªF¨Ê³£¯A¨¦°Ï2¤B¤ì21-1\"}]}"); }
/// <summary> /// プッシュ送信 /// </summary> /// <param name="channelAccessToken">ChannelAccessToken</param> /// <param name="to">送信先ID</param> /// <param name="messageFactoryService">MessageFactoryService</param> public static async Task SendReplyMessage(string channelAccessToken, string to, MessageFactoryService messageFactoryService) { Trace.TraceInformation("Start"); PushMessageRequest request = new PushMessageRequest() { to = to, messages = messageFactoryService.Messages }; string requestUrl = ConfigurationManager.AppSettings["BaseUrl"] + ConfigurationManager.AppSettings["PushUrl"]; await MessagingApiSender.SendMessagingApi <PushMessageRequest, string>( channelAccessToken, requestUrl, request, "post" ).ConfigureAwait(false); Trace.TraceInformation("End"); }
/// <summary> /// To the push message request v3. /// </summary> /// <param name="request">The request.</param> /// <returns>Beyova.JPush.V3.PushMessageRequestV3.</returns> public static Beyova.JPush.V3.PushMessageRequestV3 ToPushMessageRequestV3(this PushMessageRequest request) { Beyova.JPush.V3.PushMessageRequestV3 result = null; if (request != null) { result = new Beyova.JPush.V3.PushMessageRequestV3() { Platform = request.Platform, IsTestEnvironment = request.IsTestEnvironment, LifeTime = request.LifeTime, OverrideMessageId = request.OverrideMessageId, Notification = new Notification(), AppMessage = new AppMessage { Content = request.Message.Content, Title = request.Message.PushTitle, CustomizedValue = request.Message.CustomizedValue } }; Audience audience = new Audience(); List <string> list = new List <string>(request.ReceiverValue.Split(new char[] { ',', ';', ' ' }, StringSplitOptions.RemoveEmptyEntries)); switch (request.PushType) { case PushType.Broadcast: audience.Add(PushTypeV3.Broadcast, null); break; case PushType.ByAlias: audience.Add(PushTypeV3.ByAlias, list); break; case PushType.ByRegistrationId: audience.Add(PushTypeV3.ByRegistrationId, list); break; case PushType.ByTag: audience.Add(PushTypeV3.ByTagWithinOr, list); break; default: break; } result.Audience = audience; Notification notification = new Notification(); if ((request.Platform & PushPlatform.Android) == PushPlatform.Android) { result.Notification.AndroidNotification = new AndroidNotificationParameters { Alert = request.Message.Content, BuilderId = request.Message.BuilderId, CustomizedValues = request.Message.CustomizedValue, Title = request.Message.PushTitle }; } if ((request.Platform & PushPlatform.iOS) == PushPlatform.iOS) { result.Notification.iOSNotification = new iOSNotificationParameters { Alert = request.Message.Content, Sound = request.Message.Sound, CustomizedValues = request.Message.CustomizedValue, Badge = request.Message.BadgeValue }; } } return(result); }
public JsonResultObject PushMessage(PushMessageRequest req) { var result = new JsonResultObject(); var collection = upLoadConfig.Secures; string jsonStr = string.Empty; string pushUrl = collection["push"].URL; // 请求 HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(pushUrl); httpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; httpWebRequest.Method = "POST"; string data = "method=" + req.Method; data += "&channelID=" + req.ChannelID; if (req.PushType != null && req.PushType != "") { data += "&pushType=" + req.PushType; } if (req.TargetList != null && req.TargetList != "") { data += "&targetList=" + req.TargetList; } if (req.Content != null && req.Content != "") { data += "&content=" + req.Content; } if (req.TypeID != null && req.TypeID != "") { data += "&TypeID=" + req.TypeID; } if (req.Creator != null && req.Creator != "") { data += "&creator=" + req.Creator; } if (req.DataID != null && req.DataID != "") { data += "&dataID=" + req.DataID; } if (req.Url != null && req.Url != "") { data += "&url=" + req.Url; } data += "&template=" + req.Template; byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data); httpWebRequest.ContentLength = bytes.Length; Stream requestStream = httpWebRequest.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Flush(); requestStream.Close(); // 响应 try { HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream()); string responseContent = streamReader.ReadToEnd(); httpWebResponse.Close(); streamReader.Close(); httpWebRequest.Abort(); httpWebResponse.Close(); result = JsonHelper.ConvertToObj <JsonResultObject>(responseContent); } catch { result.status = false; result.msg = "推送消息失败,网络连接失败!"; } return(result); }