private string GetJsonMessageForSendImageEndpoint(SendImageRequest request) { return(JsonConvert.SerializeObject(MapToImageRequest(request), new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() })); }
public void SendImageMessage(string user, XmlNode TSubResultNode) { string str_AccessToken = TokenBiz.GetAccessToken(str_corpid, str_corpsecret); SendImageRequest str = new SendImageRequest(); str.agentid = Agentid; str.safe = "0"; str.touser = user; SendImageRequest.Text image = new SendImageRequest.Text(); str.msgtype = TSubResultNode.SelectSingleNode("msgtype").InnerText; string picPath = HttpContext.Current.Request.PhysicalApplicationPath + TSubResultNode.SelectSingleNode("imagePath").InnerText; UploadResponse media_UpLoadInfo = MediaBiz.CreateInstance().Upload(picPath, str_AccessToken, EnumMediaType.image); if (media_UpLoadInfo != null) { image.media_id = media_UpLoadInfo.media_id; } str.image = image; messageBiz.Send <SendImageRequest>(str); if (!string.IsNullOrEmpty(TSubResultNode.SelectSingleNode("content").InnerText)) { SendSingleMessage(user, TSubResultNode); } }
/// <summary> /// 发送图片消息 /// 文档:https://work.weixin.qq.com/api/doc#10167 /// </summary> /// <param name="request">请求参数</param> /// <returns>返回结果</returns> public SendMessageResult SendImage(SendImageRequest request) { if (request.agentid == 0) { request.agentid = Client.AgentId; } return(Send(request)); }
public IActionResult SendImage(SendImageRequest request) { ApiType apiType = (ApiType)Enum.Parse(typeof(ApiType), request.ApiName); if (request.File != null) { if (request.File.Length > 0) { var tempPath = Path.GetTempFileName(); tempPath = tempPath.Insert(tempPath.IndexOf(".tmp") - 1, Guid.NewGuid().ToString()); using (var stream = new FileStream(tempPath, FileMode.Create)) { request.File.CopyToAsync(stream); } if (apiType == ApiType.WeboxAppApi) { using (var stream = new FileStream(tempPath, FileMode.Open)) { request.Url = WriteMediaToBlobStorage(apiType, stream, request.File.FileName); if (!string.IsNullOrEmpty(request.Url)) { WeboxappServiceBridge serviceBridge = new WeboxappServiceBridge(); serviceBridge.SendWhatsAppImage(request); } } } else if (apiType == ApiType.ChatApi) { Byte[] bytes = this.ReadAllBytes2(tempPath);//System.IO.File.ReadAllBytes(tempPath); if (request.File.FileName.Contains(".jpg")) { request.Url = string.Format("data:image/jpg;base64,{0}", Convert.ToBase64String(bytes)); } else if (request.File.FileName.Contains(".png")) { request.Url = string.Format("data:image/png;base64,{0}", Convert.ToBase64String(bytes)); } else if (request.File.FileName.Contains(".bmp")) { request.Url = string.Format("data:image/bmp;base64,{0}", Convert.ToBase64String(bytes)); } ChatApiServiceBridge serviceBridge = new ChatApiServiceBridge(); serviceBridge.SendWhatsAppImage(request); } } } return(Ok("Uploaded")); }
private Image MapToImageRequest(SendImageRequest request) { return(new Image { Token = Constants.WeboxAppApiToken, Uid = request.SenderMobileNumber, Customer_uid = request.CustomUniqueID, To = request.RecipientMobileNumber, Url = request.Url, Caption = request.Caption, Description = request.Description }); }
public override Task <SendMessageResponse> SendImage(SendImageRequest request, ServerCallContext context) { var targets = _processTarget(request.Targets); var messageStatus = new MessageStatus(_redis); messageStatus.GenMessageId(); var now = Util.GetTimestamp(); var resp = new SendMessageResponse { MessageId = messageStatus.GetMessageId(), SendTime = request.Time == 0 ? now : request.Time }; if (request.NoStatus) { resp.MessageId = string.Empty; messageStatus.SetMessageId(null); } else { messageStatus.Create(targets.Keys.ToArray(), resp.SendTime); } foreach (var item in targets) { if (request.Time == 0) { if (request.HighPriority) { BackgroundJob.Enqueue <SendMessage>(x => x.HighPriorityImage(messageStatus.GetMessageId(), request.AppId, item.Key, request.ImageId, null)); } else { BackgroundJob.Enqueue <SendMessage>(x => x.Image(messageStatus.GetMessageId(), request.AppId, item.Key, request.ImageId, null)); } } else { var tmpJobId = string.Empty; if (request.HighPriority) { tmpJobId = BackgroundJob.Schedule <SendMessage>(x => x.HighPriorityImage(messageStatus.GetMessageId(), request.AppId, item.Key, request.ImageId, null), TimeSpan.FromSeconds(request.Time - now)); } else { tmpJobId = BackgroundJob.Schedule <SendMessage>(x => x.Image(messageStatus.GetMessageId(), request.AppId, item.Key, request.ImageId, null), TimeSpan.FromSeconds(request.Time - now)); } messageStatus.AddJobId(tmpJobId); } } return(Task.FromResult(resp)); }
public string SendWhatsAppImage(SendImageRequest request) { var jsonRequest = GetJsonMessageForSendImageEndpoint(request); ApiProxy apiProxy = new ApiProxy(); string response = null; var apiResponse = apiProxy.PostAsyncEncodedContent(ApiType.WeboxAppApi, Constants.WeboxAppApiSendImagePOSTEndPoint, jsonRequest); if (apiResponse != null) { if (apiResponse.Result.IsSuccessStatusCode) { var customerJsonString = apiResponse.Result.Content.ReadAsStringAsync().Result; response = customerJsonString; } } return(response); }
public SendImageResponse SendImage(ISession session, SendImageRequest request) { var response = request.CreateResponse <SendImageResponse>(); response.ImageId = -1; if (session.User.IsDevoiced) { session.Send(new YouAreDevoicedNotification()); return(response); } PublicMessage message = null; using (var uow = UnitOfWorkFactory.Create()) { int fileId; try { fileId = _fileStorage.AppendFile(request.Image); response.ImageId = fileId; } catch (System.Exception) { //Invalid image return(response); } uow.Attach(session.User); message = new PublicMessage(session.User, fileId, "Your client doesn't support IMAGE messages"); uow.PublicMessageRepository.Add(message); uow.Commit(); } var dto = message.ProjectedAs <PublicMessageDto>(); dto.Role = (UserRoleEnum)(int)session.User.Role; _sessionManager.SendToEachChatSessions(dto); return(response); }
public Task <SendImageResponse> SendImage(SendImageRequest request) { return(ConnectionManager.SendRequestAndWaitResponse <SendImageResponse>(request)); }