コード例 #1
0
        public IHttpActionResult PostWhatsAppChatBot(WhatsAppChatBot messageModel)
        {
            using (BLL.ChatBot bll = new BLL.ChatBot())
            {
                bll.ProcessMessage(messageModel);
            }

            return(Ok());
        }
コード例 #2
0
        public void ProcessMessage(WhatsAppChatBot messageModel)
        {
            try
            {
                List <string> persistentAction = null;

                Nullable <int> messageCount = null;

                if (HttpContext.Current.Session["MessageCount"] != null)
                {
                    messageCount = Convert.ToInt32(HttpContext.Current.Session["MessageCount"].ToString());
                }

                if (messageCount == null)
                {
                    messageModel.Body = WELCOME;
                    HttpContext.Current.Session["MessageCount"] = 0;
                }
                else
                {
                    if (messageModel.Body.Trim().ToUpper() == RESET_WORD)
                    {
                        messageModel.Body = WELCOME;
                        messageCount      = null;
                    }
                    else
                    {
                        messageCount++;
                        messageModel.Body = string.Format(MSG, messageCount.ToString(), messageModel.Body);
                    }

                    if (messageCount.HasValue)
                    {
                        HttpContext.Current.Session["MessageCount"] = messageCount.ToString();
                    }
                    else
                    {
                        HttpContext.Current.Session["MessageCount"] = null;
                    }
                }

                this.SendWhatsApp(messageModel, persistentAction);

                if ((messageCount.HasValue) && (messageCount % 2 == 0))
                {
                    messageModel.Body = RESET_MSG;
                    this.SendWhatsApp(messageModel);
                }
            }
            catch (Exception ex)
            {
                messageModel.Body = WARNING_MSG;
                this.SendWhatsApp(messageModel);
            }
        }
コード例 #3
0
        private void SendWhatsApp(WhatsAppChatBot messageModel, List <string> persistentAction = null)
        {
            string accountSid        = (string)ConfigurationManager.AppSettings["TWILIO_ACCOUNT_SID"];
            string authToken         = (string)ConfigurationManager.AppSettings["TWILIO_AUTH_TOKEN"];
            string senderPhoneNumber = (string)ConfigurationManager.AppSettings["TWILIO_SENDER_PHONE_NUMBER"];

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            TwilioClient.Init(accountSid, authToken);

            var message = MessageResource.Create(
                body: string.Format(messageModel.Body),
                from: new Twilio.Types.PhoneNumber(String.Format(PHONE_NUMBER, senderPhoneNumber)),
                persistentAction: persistentAction,
                to: new Twilio.Types.PhoneNumber(messageModel.From)
                );
        }