Esempio n. 1
0
 private string GetJsonMessageForSendImageEndpoint(SendImageRequest request)
 {
     return(JsonConvert.SerializeObject(MapToImageRequest(request), new JsonSerializerSettings
     {
         ContractResolver = new CamelCasePropertyNamesContractResolver()
     }));
 }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
        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"));
        }
Esempio n. 5
0
 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
     });
 }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 public Task <SendImageResponse> SendImage(SendImageRequest request)
 {
     return(ConnectionManager.SendRequestAndWaitResponse <SendImageResponse>(request));
 }