protected void Button1_Click(object sender, EventArgs e)
        {
            //建立一個Buttons Template Message物件
            var ButtonsTemplateMsg = new isRock.LineBot.ButtonsTemplate();

            //設定thumbnailImageUrl
            ButtonsTemplateMsg.altText           = "無法顯示時的替代文字";
            ButtonsTemplateMsg.thumbnailImageUrl = new Uri("https://arock.blob.core.windows.net/blogdata201709/14-143030-1cd8cf1e-8f77-4652-9afa-605d27f20933.png");
            ButtonsTemplateMsg.text  = "請問您想購買哪一類的服飾?";
            ButtonsTemplateMsg.title = "詢問"; //標題
            //建立actions
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.PostbackAction()
            {
                label = "男裝", data = "product=clothes&type=man"
            });
            actions.Add(new isRock.LineBot.PostbackAction()
            {
                label = "女裝", data = "product=clothes&type=women"
            });
            actions.Add(new isRock.LineBot.PostbackAction()
            {
                label = "童裝", data = "product=clothes&type=children"
            });
            //將建立好的actions選項加入
            ButtonsTemplateMsg.actions = actions;
            //建立bot instance
            isRock.LineBot.Bot bot = new isRock.LineBot.Bot("換成你的Token");
            //send ButtonsTemplateMsg
            bot.PushMessage("換成你的UserId", ButtonsTemplateMsg);
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //建立Bot instance
            isRock.LineBot.Bot bot =
                new isRock.LineBot.Bot("!!!!!!!!!!請改用自己的Line bot Token!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  //傳入Channel access token

            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.DateTimePickerAction()
            {
                label = "測試-選取時間", mode = "time"
            });
            actions.Add(new isRock.LineBot.DateTimePickerAction()
            {
                label = "測試-選取日期", mode = "date"
            });
            actions.Add(new isRock.LineBot.DateTimePickerAction()
            {
                label = "測試-選取時間日期", mode = "datetime"
            });

            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                text  = "這個範例測試使用Line新釋出的DateTime Action,讓用戶選擇時間日期並取得會傳值...",
                title = "ButtonsTemplate測試",
                //設定圖片
                thumbnailImageUrl = new Uri("https://arock.blob.core.windows.net/blogdata201706/22-124357-ad3c87d6-b9cc-488a-8150-1c2fe642d237.png"),
                actions           = actions //設定回覆動作
            };

            //發送
            bot.PushMessage("!!!!!!!!!!請改用自己的Line bot Admin User ID!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", ButtonTemplate);
        }
        protected void Button_SendButtonTemplate_Click(object sender, EventArgs e)
        {
            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageAction()
            {
                label = "點選這邊等同用戶直接輸入某訊息", text = "/例如這樣"
            });
            actions.Add(new isRock.LineBot.UriAction()
            {
                label = "點這邊開啟網頁", uri = new Uri("http://www.google.com")
            });
            actions.Add(new isRock.LineBot.PostbackAction()
            {
                label = "點這邊發生postack", data = "abc=aaa&def=111"
            });

            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                altText = "替代文字(在無法顯示Button Template的時候顯示)",
                text    = txbButtonTemplateText.Text,
                title   = txbButtonTemplateTitle.Text,
                //設定圖片
                thumbnailImageUrl = new Uri("https://scontent-tpe1-1.xx.fbcdn.net/v/t31.0-8/15800635_1324407647598805_917901174271992826_o.jpg?oh=2fe14b080454b33be59cdfea8245406d&oe=591D5C94"),
                actions           = actions //設定回覆動作
            };

            //發送
            bot.PushMessage(this.txb_SendTo.Text.Trim(), ButtonTemplate);
        }
        protected void Button_SendButtonTemplate_Click(object sender, EventArgs e)
        {
            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageAction()
            {
                label = "點選這邊等同用戶直接輸入某訊息", text = "/例如這樣"
            });
            actions.Add(new isRock.LineBot.UriAction()
            {
                label = "點這邊開啟網頁", uri = new Uri("http://www.google.com")
            });
            actions.Add(new isRock.LineBot.PostbackAction()
            {
                label = "點這邊發生postack", data = "abc=aaa&def=111"
            });

            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                altText = "Line表單)",
                text    = txbButtonTemplateText.Text,
                title   = txbButtonTemplateTitle.Text,
                //設定圖片
                thumbnailImageUrl = new Uri("https://cdn.clickme.net/gallery/f07b18a48dce9859b3e0bc1584e656bb.jpeg"),
                actions           = actions //設定回覆動作
            };

            //發送
            bot.PushMessage(this.txb_SendTo.Text.Trim(), ButtonTemplate);
        }
Пример #5
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            //建立Bot instance
            isRock.LineBot.Bot bot =
                new isRock.LineBot.Bot(txbToken.Text);  //傳入Channel access token

            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageActon()
            {
                label = "標題-文字回覆", text = "回覆文字"
            });
            actions.Add(new isRock.LineBot.UriActon()
            {
                label = "標題-開啟URL", uri = new Uri("http://www.google.com")
            });
            actions.Add(new isRock.LineBot.PostbackActon()
            {
                label = "標題-發生postack", data = "abc=aaa&def=111"
            });

            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                text  = "ButtonsTemplate文字訊息",
                title = "ButtonsTemplate標題",
                //設定圖片
                thumbnailImageUrl = new Uri("https://scontent-tpe1-1.xx.fbcdn.net/v/t31.0-8/15800635_1324407647598805_917901174271992826_o.jpg?oh=2fe14b080454b33be59cdfea8245406d&oe=591D5C94"),
                actions           = actions //設定回覆動作
            };

            //發送
            bot.PushMessage(this.TxbUserId.Text, ButtonTemplate);
        }
Пример #6
0
        protected void Button2_Click(object sender, EventArgs e)
        {
            //建立Bot instance
            isRock.LineBot.Bot bot = new isRock.LineBot.Bot("i/4x4GM5nwwiiW5X1IAxc1vLmO9ZAe/Lh68Kndst4l2cm/N8mEE+QZQh+EO/MjPjxhExb/gv/JSKvhFb0/sSspqGK4cRaWtMYlG7AbD1FFl+h9v79TexteocZRYj68C6QN18b4rMB9yeib4XVZ9wvwdB04t89/1O/w1cDnyilFU=");
            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageAction()
            {
                label = "標題-文字回覆", text = "回覆文字"
            });
            //actions.Add(new isRock.LineBot.UriAction() { label = "標題-開啟URL", uri = new Uri("http://www.google.com") });
            actions.Add(new isRock.LineBot.DateTimePickerAction()
            {
                label = "請選擇時間", mode = "date"
            });
            actions.Add(new isRock.LineBot.PostbackAction()
            {
                label = "標題-發生postack", data = "abc=aaa&def=111"
            });
            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                text  = "ButtonsTemplate文字訊息",
                title = "ButtonsTemplate標題",
                //設定圖片
                thumbnailImageUrl = new Uri("https://mir-s3-cdn-cf.behance.net/project_modules/max_1200/d9f94328920441.55d941e2eb7a7.jpg"),
                actions           = actions//設定回覆動作
            };

            //發送
            bot.PushMessage(AdminUserId, ButtonTemplate);
        }
Пример #7
0
        private void buttonSendButtonTemplate_Click(object sender, EventArgs e)
        {
            //建立一個Buttons Template Message物件
            var ButtonsTemplateMsg = new isRock.LineBot.ButtonsTemplate();

            //設定thumbnailImageUrl
            ButtonsTemplateMsg.altText           = "無法顯示時的替代文字";
            ButtonsTemplateMsg.thumbnailImageUrl = new Uri("https://arock.blob.core.windows.net/blogdata201709/14-143030-1cd8cf1e-8f77-4652-9afa-605d27f20933.png");
            ButtonsTemplateMsg.text  = "請問您想購買哪一類的服飾?";
            ButtonsTemplateMsg.title = "詢問"; //標題
            //建立actions
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageAction()
            {
                label = "男裝", text = "man"
            });
            actions.Add(new isRock.LineBot.MessageAction()
            {
                label = "女裝", text = "women"
            });
            actions.Add(new isRock.LineBot.MessageAction()
            {
                label = "童裝", text = "children"
            });
            //將建立好的actions選項加入
            ButtonsTemplateMsg.actions = actions;
            //建立bot instance
            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(token);
            //send ButtonsTemplateMsg
            bot.PushMessage(AdminUserId, ButtonsTemplateMsg);
        }
Пример #8
0
        public IHttpActionResult ButtonsTemplateMessage(string replyToken, string bookname)
        {
            try
            {
                this.ChannelAccessToken = channelAccessToken;
                BooksRepository _repo = new BooksRepository();
                //var allbooks = _repo.GetAllBook();

                //var book = allbooks.Where(o => o.BooksName.Contains(bookname)).FirstOrDefault();
                var book = _repo.GetOneBook(bookname);
                if (book != null)
                {
                    var actions = new List <isRock.LineBot.TemplateActionBase>();
                    actions.Add(new isRock.LineBot.UriAction()
                    {
                        label = "前往購買", uri = new Uri("https://mvcprojecttest20190614051921.azurewebsites.net/Book/BookDetail/" + book.BookId)
                    });
                    string msgtext;
                    if (book.Discount == 0)
                    {
                        msgtext = "作者:" + book.AuthorName + ",價格:" + book.UnitPrice.ToString("0") + "元,庫存:" + book.InStock + "本";
                    }
                    else
                    {
                        msgtext = "作者:" + book.AuthorName + ",價格:" + book.UnitPrice.ToString("0") + "元,特價" + (book.UnitPrice * (1 - book.Discount)).ToString("0") + "元,庫存:" + book.InStock + "本";
                    }


                    //單一Button Template Message
                    var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
                    {
                        text  = msgtext,
                        title = book.BooksName,
                        //設定圖片
                        thumbnailImageUrl = new Uri(book.ImgurUri),
                        actions           = actions //設定回覆動作
                    };
                    //發送
                    this.ReplyMessage(replyToken, ButtonTemplate);
                }
                else
                {
                    this.ReplyMessage(replyToken, "抱歉,沒有找到這本書!");
                }

                //發送
                return(Ok());
            }
            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #9
0
        /// <summary>
        /// 發送ButtonTemplate
        /// </summary>
        /// <param name="id">指定發送的ID,此method是取groupid</param>
        /// <param name="Action">ButtonTemplate下的按鈕選單</param>
        /// <param name="buttonTitle">Template上的標題</param>
        /// <param name="buttonText">Template上的附標題</param>
        /// <param name="ChannelAccessToken">API Token</param>
        public static void sendButtonTemplate(string id, List <isRock.LineBot.TemplateActionBase> Action, string buttonTitle, string buttonText, string ChannelAccessToken)
        {
            var BtnTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                altText           = "看不到去看手機啦",
                title             = buttonTitle,
                text              = buttonText,
                thumbnailImageUrl = new Uri("https://i.imgur.com/Z8qy7wY.png"),
                actions           = Action //設定回覆動作
            };

            isRock.LineBot.Utility.PushTemplateMessage(id, BtnTemplate, ChannelAccessToken);
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            var ChannelAccessToken = "GD3FGHjJmIZVTT0lYEUb2znRG6oIhG5thKUB9MotItS1WyfNGPelF148SobaWZMGooCazVMZZLzl92/j6uddgRbMbkXy1Gfj8m1ojkMbs+Nr4rsRU3qz2SNVEj/zjaeYBhWa3IgjhXAfLrb9gaGZrQdB04t89/1O/w1cDnyilFU=";

            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(ChannelAccessToken);

            var UserID = "Uf61bf68e7cfaedec8be1db4f007fa3b6";

            //push text
            //bot.PushMessage(UserID, "test");

            //push sticker
            //bot.PushMessage(UserID, 1, 2);

            //push image
            //bot.PushMessage(UserID, new Uri("https://arock.blob.core.windows.net/blogdata201612/22-124303-d8b2c4de-9a8c-48da-83f1-7c0d36de3ab6.png"));

            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageActon()
            {
                label = "點選這邊等同用戶直接輸入某訊息", text = "/例如這樣"
            });
            actions.Add(new isRock.LineBot.UriActon()
            {
                label = "點這邊開啟網頁", uri = new Uri("http://www.google.com")
            });
            actions.Add(new isRock.LineBot.PostbackActon()
            {
                label = "點這邊發生postack", data = "abc=aaa&def=111"
            });

            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                altText = "替代文字(在無法顯示Button Template的時候顯示)",
                text    = "描述文字",
                title   = "標題",
                //設定圖片
                thumbnailImageUrl = new Uri("https://scontent-tpe1-1.xx.fbcdn.net/v/t31.0-8/15800635_1324407647598805_917901174271992826_o.jpg?oh=2fe14b080454b33be59cdfea8245406d&oe=591D5C94"),
                actions           = actions //設定回覆動作
            };

            //發送
            bot.PushMessage(UserID, ButtonTemplate);
        }
Пример #11
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            var ChannelAccessToken = "XYaRE0qBH4/2oKlLnvo37e20XZDV6Oz104ynfWt/jwIKC1kQC+MN/Ryvj8jVo0W/Gnej675fXB6jrFQkMt5xz/nx1aGFsLlFi8igSkNttLYJdG4U1+LSl9dcXhPizM3XjD3dNFNjDKJCzYSaHmdbJQdB04t89/1O/w1cDnyilFU=";

            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(ChannelAccessToken);

            var UserID = "U6ca03-------請用你自己的-------6126809a5f";

            //push text
            //bot.PushMessage(UserID, "test");

            //push sticker
            //bot.PushMessage(UserID, 1, 2);

            //push image
            //bot.PushMessage(UserID, new Uri("https://arock.blob.core.windows.net/blogdata201612/22-124303-d8b2c4de-9a8c-48da-83f1-7c0d36de3ab6.png"));

            //建立actions,作為ButtonTemplate的用戶回覆行為
            var actions = new List <isRock.LineBot.TemplateActionBase>();

            actions.Add(new isRock.LineBot.MessageActon()
            {
                label = "點選這邊等同用戶直接輸入某訊息", text = "/例如這樣"
            });
            actions.Add(new isRock.LineBot.UriActon()
            {
                label = "點這邊開啟網頁", uri = new Uri("http://www.google.com")
            });
            actions.Add(new isRock.LineBot.PostbackActon()
            {
                label = "點這邊發生postack", data = "abc=aaa&def=111"
            });

            //單一Button Template Message
            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
            {
                altText = "替代文字(在無法顯示Button Template的時候顯示)",
                text    = "描述文字",
                title   = "標題",
                //設定圖片
                thumbnailImageUrl = new Uri("https://scontent-tpe1-1.xx.fbcdn.net/v/t31.0-8/15800635_1324407647598805_917901174271992826_o.jpg?oh=2fe14b080454b33be59cdfea8245406d&oe=591D5C94"),
                actions           = actions //設定回覆動作
            };

            //發送
            bot.PushMessage(UserID, ButtonTemplate);
        }
Пример #12
0
        public IHttpActionResult ButtonsTemplateMessageForOrderStatus(string replyToken, string customerAccount)
        {
            try
            {
                OrderRepository _odrepo = new OrderRepository();
                var             orders  = _odrepo.GetOrderStatusByNotop4(customerAccount);
                if (orders != null)
                {
                    var actions = new List <isRock.LineBot.TemplateActionBase>();
                    foreach (var order in orders)
                    {
                        actions.Add(new isRock.LineBot.MessageAction()
                        {
                            label = "訂單編號:" + order.OrderNo,
                            text  = order.OrderNo
                        });
                    }


                    //單一Button Template Message
                    var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
                    {
                        text    = "請選擇您要查詢的訂單編號,越上面為越近期的訂單。",
                        title   = "以下是您尚未完成的訂單",
                        actions = actions //設定回覆動作
                    };
                    //發送
                    this.ReplyMessage(replyToken, ButtonTemplate);
                }
                else
                {
                    this.ReplyMessage(replyToken, "抱歉,沒有找到這本書!");
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #13
0
        public async Task <IActionResult> POST()
        {
            StickerList = Array.ConvertAll(_config.GetSection("Sticker:StickerList").Get <string> ().Split(","), int.Parse).ToList();
            PackageId   = _config.GetSection("Sticker:PackageId").Get <int> ();
            //get configuration from appsettings.json
            var token       = _config.GetSection("channelAccessToken");
            var AdminUserId = _config.GetSection("adminUserID");
            var body        = ""; //for JSON Body
            //create vot instance
            var bot = new isRock.LineBot.Bot(token.Value);

            isRock.LineBot.MessageBase responseMsg = null;
            //message collection for response multi-message
            List <isRock.LineBot.MessageBase> responseMsgs =
                new List <isRock.LineBot.MessageBase> ();

            try {
                //get JSON Body
                using (StreamReader reader = new StreamReader(Request.Body, System.Text.Encoding.UTF8)) {
                    body = reader.ReadToEndAsync().Result;
                }
                //parsing JSON
                var ReceivedMessage = isRock.LineBot.Utility.Parsing(body);
                //Get LINE Event
                var LineEvent = ReceivedMessage.events.FirstOrDefault();
                //prepare reply message
                if (LineEvent.type.ToLower() == "message")
                {
                    switch (LineEvent.message.type.ToLower())
                    {
                    case "text":
                        Random random = new Random();
                        //add text response
                        responseMsg =
                            new isRock.LineBot.StickerMessage(PackageId, StickerList[random.Next(StickerList.Count - 1)]);
                        responseMsgs.Add(responseMsg);
                        //add ButtonsTemplate if user say "/Show ButtonsTemplate"
                        if (LineEvent.message.text.ToLower().Contains("/show buttonstemplate"))
                        {
                            //define actions
                            var act1 = new isRock.LineBot.MessageAction()
                            {
                                text = "test action1", label = "test action1"
                            };
                            var act2 = new isRock.LineBot.MessageAction()
                            {
                                text = "test action2", label = "test action2"
                            };

                            var tmp = new isRock.LineBot.ButtonsTemplate()
                            {
                                text              = "Button Template text",
                                title             = "Button Template title",
                                thumbnailImageUrl = new Uri("https://i.imgur.com/wVpGCoP.png"),
                            };

                            tmp.actions.Add(act1);
                            tmp.actions.Add(act2);
                            //add TemplateMessage into responseMsgs
                            responseMsgs.Add(new isRock.LineBot.TemplateMessage(tmp));
                        }
                        else if (LineEvent.message.text.Contains("股票"))
                        {
                            string stockNo          = Regex.Split(LineEvent.message.text, "股票.")[1];
                            var    webCrawlerHelper = new WebCrawerHelper(_config);
                            string data             = webCrawlerHelper.getDatas(stockNo).Result;
                            responseMsg =
                                new isRock.LineBot.TextMessage(data);
                            responseMsgs.Add(responseMsg);
                        }
                        break;

                    case "sticker":
                        responseMsg =
                            new isRock.LineBot.StickerMessage(1, 2);
                        responseMsgs.Add(responseMsg);
                        break;

                    default:
                        var random2 = new Random();
                        // responseMsg = new isRock.LineBot.TextMessage($"None handled message type : { LineEvent.message.type}");
                        responseMsg = new isRock.LineBot.StickerMessage(PackageId, StickerList[random2.Next(StickerList.Count - 1)]);
                        responseMsgs.Add(responseMsg);
                        break;
                    }
                }
                else
                {
                    responseMsg = new isRock.LineBot.TextMessage($"None handled event type : { LineEvent.type}");
                    responseMsgs.Add(responseMsg);
                }
                await Task.CompletedTask;

                //回覆訊息
                bot.ReplyMessage(LineEvent.replyToken, responseMsgs);
                //response OK
                return(Ok());
            } catch (Exception ex) {
                //如果有錯誤,push給admin
                bot.PushMessage(AdminUserId.Value, "Exception : \n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #14
0
        public IActionResult LinebotAccess()
        {
            string postData = string.Empty;

            try
            {
                using (StreamReader reader = new StreamReader(Request.Body))
                {
                    postData = reader.ReadToEnd();
                }
                //取得 http Post RawData(should be JSON)
                //postData = Request.Body.ReadAsync;//Request.Content.ReadAsStringAsync().Result;
                //剖析JSON
                var ReceivedMessage = isRock.LineBot.Utility.Parsing(postData);
                //回覆訊息
                string Message;
                Message = ReceivedMessage.events[0].message.text;
                var switchFunction = Message.Split(' ');
                var result         = string.Empty;
                switch (ConvertToNarrow(switchFunction.FirstOrDefault()).ToLower())
                {
                case "!":
                    result = "修改";
                    break;

                case "?倉庫":
                    var areaName   = switchFunction[1];
                    var areaResult = SearchArea(areaName);
                    result = "查詢結果:\n" + areaResult;
                    break;

                case "?名稱":
                    var Namename   = switchFunction[1];
                    var nameResult = SearchName(Namename);
                    result = "查詢結果:\n" + nameResult;
                    break;

                case "+":
                    if (switchFunction.Count() != 7)
                    {
                        result = "輸入的參數錯誤!!";
                    }
                    else
                    {
                        var area          = switchFunction[1];
                        var name          = switchFunction[2];
                        var color         = switchFunction[3];
                        var position      = switchFunction[4];
                        var quantity      = switchFunction[5];
                        var memo          = switchFunction[6];
                        var userName      = GetUserName(ReceivedMessage.events[0].source.userId);
                        var successInsert = Insert(area, name, color, position, Convert.ToInt32(quantity), userName, memo);
                        if (successInsert)
                        {
                            result = "新增成功";
                        }
                        else
                        {
                            result = "新增失敗";
                        }
                    }
                    break;

                case "-":
                    var id            = Convert.ToInt32(switchFunction[1]);
                    var successDelete = DeleteById(id);
                    if (successDelete)
                    {
                        result = "刪除成功";
                    }
                    else
                    {
                        result = "刪除失敗";
                    }
                    break;

                case "help":
                    result = @"======查詢指令======\n?倉庫 [倉庫名稱] \n?名稱 [布種名稱] \n======新增指令======\n+ [倉庫名稱] [布種名稱] [顏色] [儲位] [數量] [備註] \n======修改指令======\n! [顆顆,還沒做]\n======刪除指令======\n- [編號]";
                    break;

                default:
                    return(Ok());
                }
                if (!ConfigProvider.IsDevelopment)
                {
                    if (ConvertToNarrow(switchFunction.FirstOrDefault()).ToLower() == "!")
                    {
                        var actions = new List <isRock.LineBot.TemplateActionBase>();
                        actions.Add(new isRock.LineBot.MessageAction()
                        {
                            label = "指令查詢", text = "help"
                        });
                        actions.Add(new isRock.LineBot.UriAction()
                        {
                            label = "開啟網頁", uri = new Uri("http://www.google.com")
                        });
                        // var textileStoreList = TextileStoreList("a");

                        // var column = textileStoreList.Select(s => new isRock.LineBot.Column()
                        // {
                        //     //thumbnailImageUrl = new Uri(string.Empty),
                        //     title = s.Area,
                        //     text = s.Name,
                        //     actions = actions

                        // }).Take(5).ToList();
                        isRock.LineBot.ButtonsTemplate test = new isRock.LineBot.ButtonsTemplate()
                        {
                            //thumbnailImageUrl = new Uri(string.Empty),
                            title   = "testTitle",
                            text    = "testText",
                            actions = actions
                        };
                        isRock.LineBot.Utility.ReplyTemplateMessage(ReceivedMessage.events[0].replyToken, test, ConfigProvider.ChannelAccessToken);
                    }
                    else
                    {
                        //回覆用戶
                        isRock.LineBot.Utility.ReplyMessage(ReceivedMessage.events[0].replyToken, result, ConfigProvider.ChannelAccessToken);
                    }
                    return(Ok());
                }
                else
                {
                    //回覆API OK
                    return(Ok(result));
                }
            }
            catch (Exception ex)
            {
                return(Ok(ex));
            }
        }
        public IActionResult POST()
        {
            var AdminUserId = "U3642fd7bd605b4781e64effed44ec97e";

            try
            {
                //設定ChannelAccessToken
                this.ChannelAccessToken = "dt0W9B9ztQWfHmg1e3ifpp+xEvHTarYhi4SnIvrxuODgAVq5qgi19pWLPIAKqJ4VQnfPt9BTg5EkLshGWLbVM5u/C0RAzHXWs2EMdwxMLJNdJ0uHazOIDgI9NDHTdxZNy0NGNUwvzJpy6k1s467+dwdB04t89/1O/w1cDnyilFU=";
                //取得Line Event
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                var profile   = GetUserInfo(LineEvent.source.userId);

                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                var responseMsg = "";
                //準備回覆訊息
                if (LineEvent.type.ToLower() == "follow")
                {
                    isRock.LineBot.TextMessage m = new isRock.LineBot.TextMessage($"{profile.displayName},使用Smart AI Sports幫助你一起健身吧!");
                    //在TextMessage物件的quickreply屬性中加入items
                    m.quickReply.items.Add(
                        new isRock.LineBot.QuickReplyMessageAction(
                            $"想健身", "我想健身"
                            ));
                    m.quickReply.items.Add(
                        new isRock.LineBot.QuickReplyMessageAction(
                            $"身體資訊", "想知道身體資訊"
                            ));
                    m.quickReply.items.Add(
                        new isRock.LineBot.QuickReplyMessageAction(
                            $"聯絡我們", "聯絡我們"
                            ));
                    m.quickReply.items.Add(
                        new isRock.LineBot.QuickReplyLocationAction(
                            "搜尋附近的健身房"));
                    this.ReplyMessage(LineEvent.replyToken, m);
                    //response OK
                    return(Ok());
                }
                //設定用戶回傳訊息類型為image時的回覆
                else if (LineEvent.type.ToLower() == "message" && LineEvent.message.type == "image")
                {
                    Uri imgUri = new Uri("https://i.imgur.com/o9uT3Aa.png");
                    var msgs   = new List <isRock.LineBot.MessageBase>();
                    var msgadd = new isRock.LineBot.TextMessage($"這照片真讚\n{profile.displayName}要運動了嗎");
                    msgadd.quickReply.items.Add(
                        new isRock.LineBot.QuickReplyLocationAction(
                            "找附近的健身房"));
                    //add messages to
                    msgs.Add(new isRock.LineBot.ImageMessage(imgUri, imgUri));
                    msgs.Add(msgadd);

                    this.ReplyMessage(LineEvent.replyToken, msgs);
                    //response OK
                    return(Ok());
                }
                //設定用戶回傳訊息類型為text時的回覆
                else if (LineEvent.type.ToLower() == "message" && LineEvent.message.type == "text")
                {
                    var ret = MakeRequest(LineEvent.message.text);
                    //用戶回傳訊息為BMI時 此段為判斷intent="身體" 後 接續quickreply為BMI/TDEE的計算
                    if (LineEvent.message.text.ToUpper() == "BMI")
                    {
                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(this.ChannelAccessToken);
                        var msgs    = new List <isRock.LineBot.MessageBase>();
                        var msgadd1 = new isRock.LineBot.TextMessage("感謝您!");
                        var msgadd2 = new isRock.LineBot.TextMessage("-BMI\n身高:\n體重:");
                        //add messages to
                        msgs.Add(new isRock.LineBot.TextMessage("請複製下面表格並填入資料後回覆~"));
                        msgs.Add(msgadd1);
                        msgs.Add(msgadd2);

                        this.ReplyMessage(LineEvent.replyToken, msgs);
                        //response OK
                        return(Ok());
                    }
                    else if (LineEvent.message.text.ToUpper() == "TDEE")
                    {
                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(this.ChannelAccessToken);
                        var msgs   = new List <isRock.LineBot.MessageBase>();
                        var msgadd = new isRock.LineBot.TextMessage("-TDEE\n身高:\n體重:\n年齡:\n性別:男/女");
                        //add messages to
                        msgs.Add(new isRock.LineBot.TextMessage("請複製下面表格並填入資料後回覆~"));
                        msgs.Add(msgadd);

                        this.ReplyMessage(LineEvent.replyToken, msgs);
                        //response OK
                        return(Ok());
                    }

                    else if (LineEvent.message.text.Contains("-BMI")) // 算BMI
                    {
                        float height    = float.Parse(LineEvent.message.text.Split("\n")[1].Split(":")[1]) / 100;
                        float weight    = float.Parse(LineEvent.message.text.Split("\n")[2].Split(":")[1]);
                        float userbmi   = weight / (height * height);
                        var   bmiResult = String.Format($"Your BMI : {userbmi:0.00} ");

                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(this.ChannelAccessToken);
                        var msgs = new List <isRock.LineBot.MessageBase>();
                        msgs.Add(new isRock.LineBot.TextMessage("經過我快速精密的計算過後...."));
                        var msgadd2 = new isRock.LineBot.TextMessage($"{bmiResult}");
                        msgs.Add(msgadd2);
                        this.ReplyMessage(LineEvent.replyToken, msgs);
                        return(Ok());
                    }

                    else if (LineEvent.message.text.Contains("-TDEE")) // 算TDEE
                    {
                        double height = double.Parse(LineEvent.message.text.Split("\n")[1].Split(":")[1]);
                        double weight = double.Parse(LineEvent.message.text.Split("\n")[2].Split(":")[1]);
                        double age = double.Parse(LineEvent.message.text.Split("\n")[3].Split(":")[1]);
                        string sex = LineEvent.message.text.Split("\n")[4].Split(":")[1];
                        int    light, medi, high;
                        double BMR;
                        if (sex == "男")
                        {
                            BMR   = (13.7 * weight) + (5 * height) - (6.8 * age) + 66;
                            light = Convert.ToInt32(BMR * 1.2);
                            medi  = Convert.ToInt32(BMR * 1.375);
                            high  = Convert.ToInt32(BMR * 1.55);
                        }
                        else if (sex == "女")
                        {
                            BMR   = (9.6 * weight) + (1.8 * height) - (4.7 * age) + 655;
                            light = Convert.ToInt32(BMR * 1.2);
                            medi  = Convert.ToInt32(BMR * 1.375);
                            high  = Convert.ToInt32(BMR * 1.55);
                        }
                        else
                        {
                            responseMsg = "請輸入正確資料。";
                            this.ReplyMessage(LineEvent.replyToken, responseMsg);
                            //response OK
                            return(Ok());
                        }
                        string userbmi    = (weight / (height * height)).ToString();
                        var    tdeeResult = String.Format($"Your 基礎代謝: {BMR:0.00}\n每日總消耗熱量\n久坐:{light}\n輕量活動:{medi}\n中量活動:{high}");
                        //一次回復訊息及計算結果
                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(this.ChannelAccessToken);
                        var msgs = new List <isRock.LineBot.MessageBase>();
                        msgs.Add(new isRock.LineBot.TextMessage("經過我快速精密的計算過後...."));
                        var msgadd2 = new isRock.LineBot.TextMessage($"{tdeeResult}");
                        msgs.Add(msgadd2);
                        this.ReplyMessage(LineEvent.replyToken, msgs);
                        //response OK
                        return(Ok());
                    }
                    //若intent為打招呼 回傳default功能的Quickreply
                    else if (ret.topScoringIntent.intent.Contains("打招呼"))
                    {
                        isRock.LineBot.TextMessage m = new isRock.LineBot.TextMessage($"你好!{profile.displayName}!\n歡迎使用Smart AI Sports\n我能為你做下列的事情喔");
                        //在TextMessage物件的quickreply屬性中加入items
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"想健身", "我想健身", new Uri("https://image.flaticon.com/295/png/512/1616/1616456.png?size=1200x630f")
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"身體資訊", "想知道身體資訊", new Uri("https://image.flaticon.com/219/png/512/1754/1754237.png?size=1200x630f")
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"聯絡我們", "聯絡我們", new Uri("https://i.imgur.com/rwwI5XW.png")
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyLocationAction(
                                "搜尋附近的健身房", new Uri("https://image.flaticon.com/179/png/512/458/458369.png?size=1200x630f")));


                        this.ReplyMessage(LineEvent.replyToken, m);
                        //response OK
                        return(Ok());
                    }
                    else if (ret.topScoringIntent.intent.Contains("訓練"))
                    {
                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(this.ChannelAccessToken);
                        //建立buttonsTemplate
                        var button = new isRock.LineBot.ButtonsTemplate()
                        {
                            altText           = "altText",
                            text              = "提供姿勢偵測",
                            title             = "Smart AI Sports",
                            thumbnailImageUrl = new Uri("https://i.imgur.com/qOmWNyi.jpg")
                        };
                        //actions
                        button.actions.Add(new isRock.LineBot.UriAction()
                        {
                            label = "棒式動作示範", uri = new Uri("https://www.youtube.com/watch?v=UiklJLUh6qU")
                        });

                        button.actions.Add(new isRock.LineBot.UriAction()
                        {
                            label = "二頭彎舉示範", uri = new Uri("https://www.youtube.com/watch?v=d71MiVhUBlw&t=395s")
                        });
                        button.actions.Add(new isRock.LineBot.UriAction()
                        {
                            label = "臀推動作示範", uri = new Uri("https://www.youtube.com/watch?v=7i8iqg3s5sY")
                        });
                        // button.actions.Add(new isRock.LineBot.CamerarollAction() { label = "上傳你的照片" });
                        //
                        var msgs = new List <isRock.LineBot.MessageBase>();

                        // msgs.Add(new isRock.LineBot.TextMessage("請複製下面表格並填入資料後回覆O_o"));

                        foreach (var showlist in ret.entities)
                        {
                            Console.WriteLine(showlist.type);
                            Console.WriteLine(showlist.entity);
                            var trainlist = "";
                            if (showlist.type == "訓練名稱")
                            {
                                trainlist += showlist.entity;
                                msgs.Add(new isRock.LineBot.TextMessage($"看來你今天想練{trainlist}\n目前提供以下訓練選擇"));
                            }
                            else
                            {
                                msgs.Add(new isRock.LineBot.TextMessage($"請問你今天想練甚麼?\n目前提供以下訓練選擇"));
                            }
                            var ButtonsTmp = new isRock.LineBot.TemplateMessage(button);
                            msgs.Add(ButtonsTmp);
                            var msgadd2 = new isRock.LineBot.TextMessage("請用電腦開啟以下網站進行姿勢偵測");
                            msgs.Add(msgadd2);
                            var msgadd3 = new isRock.LineBot.TextMessage("http://192.168.36.30:3000/fitness");
                            msgs.Add(msgadd3);
                            this.ReplyMessage(LineEvent.replyToken, msgs);
                            //response OK
                            return(Ok());
                        }
                    }
                    else if (ret.topScoringIntent.intent.Contains("身體"))
                    {
                        isRock.LineBot.TextMessage m = new isRock.LineBot.TextMessage($"請問你想知道哪種資訊");
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"BMI(身體質量指數)", "BMI"
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"TDEE(基礎代謝率)", "TDEE"
                                ));
                        this.ReplyMessage(LineEvent.replyToken, m);
                        //response OK
                        return(Ok());
                    }
                    else if (ret.topScoringIntent.intent.Contains("客服"))
                    {
                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(this.ChannelAccessToken);
                        var msgs   = new List <isRock.LineBot.MessageBase>();
                        var msgadd = new isRock.LineBot.TextMessage($"{profile.displayName},這是我們能提供的服務");
                        // new isRock.LineBot.TextMessage m =
                        //在TextMessage物件的quickreply屬性中加入items
                        msgadd.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"想健身", "我想健身", new Uri("https://image.flaticon.com/295/png/512/1616/1616456.png?size=1200x630f")));
                        msgadd.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"身體資訊", "想知道身體資訊", new Uri("https://image.flaticon.com/219/png/512/1754/1754237.png?size=1200x630f")));
                        msgadd.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyLocationAction(
                                "搜尋附近的健身房", new Uri("https://image.flaticon.com/179/png/512/458/458369.png?size=1200x630f")));
                        //add messages to
                        msgs.Add(new isRock.LineBot.TextMessage("連絡電話:0911-222-333\n連絡信箱:[email protected]"));
                        msgs.Add(msgadd);

                        this.ReplyMessage(LineEvent.replyToken, msgs);
                        //response OK
                        return(Ok());
                    }
                    else if (ret.topScoringIntent.intent.Contains("感謝"))
                    {
                        Uri imgUri = new Uri("https://i.imgur.com/o9uT3Aa.png");
                        var msgs   = new List <isRock.LineBot.MessageBase>();
                        var msgadd = new isRock.LineBot.ImageMessage(imgUri, imgUri);
                        //add messages to
                        msgs.Add(new isRock.LineBot.TextMessage("很高興能幫助到您!要繼續運動保持健康喔!"));
                        msgs.Add(msgadd);

                        this.ReplyMessage(LineEvent.replyToken, msgs);
                        //response OK
                        return(Ok());
                    }
                    else if (ret.topScoringIntent.intent.Contains("None"))
                    {
                        isRock.LineBot.TextMessage m = new isRock.LineBot.TextMessage($"Sorry~{profile.displayName},我不太清楚你的意思,不過我能為你做下列的事情喔");
                        //在TextMessage物件的quickreply屬性中加入items
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"想健身", "我想健身", new Uri("https://image.flaticon.com/295/png/512/1616/1616456.png?size=1200x630f")
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"身體資訊", "想知道身體資訊", new Uri("https://image.flaticon.com/219/png/512/1754/1754237.png?size=1200x630f")
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyMessageAction(
                                $"聯絡我們", "聯絡我們", new Uri("https://i.imgur.com/rwwI5XW.png")
                                ));
                        m.quickReply.items.Add(
                            new isRock.LineBot.QuickReplyLocationAction(
                                "搜尋附近的健身房", new Uri("https://image.flaticon.com/179/png/512/458/458369.png?size=1200x630f")));

                        this.ReplyMessage(LineEvent.replyToken, m);
                        //response OK
                        return(Ok());
                    }
                    // else if (LineEvent.message.text.Contains("自訂文字"))
                    // {
                    //     //    ...
                    // }
                }
                else if (LineEvent.type.ToLower() == "message" && LineEvent.message.type == "sticker")
                {
                    responseMsg = $"{profile.displayName}有空傳貼圖,倒不如多做兩個伏地挺身";
                    this.ReplyMessage(LineEvent.replyToken, responseMsg);
                    //response OK
                    return(Ok());
                }
                else if (LineEvent.type.ToLower() == "message" && LineEvent.message.type == "location")
                {
                    double             locx    = LineEvent.message.latitude;
                    double             locy    = LineEvent.message.longitude;
                    string             gymlink = $"打開以下連結查看你附近的健身房\nhttps://www.google.com.tw/maps/search/%E5%81%A5%E8%BA%AB%E6%88%BF/@{locx},{locy},15z/";
                    isRock.LineBot.Bot bot     = new isRock.LineBot.Bot(this.ChannelAccessToken);
                    var msgs   = new List <isRock.LineBot.MessageBase>();
                    var msgadd = new isRock.LineBot.TextMessage(gymlink);
                    //add messages to
                    msgs.Add(new isRock.LineBot.TextMessage($"{profile.displayName}....你是不是在{LineEvent.message.address.Substring(3)}想找健身房"));
                    msgs.Add(msgadd);
                    this.ReplyMessage(LineEvent.replyToken, msgs);
                    //response OK
                    return(Ok());
                }
                else
                {
                    responseMsg = $"收到 event : {LineEvent.type} ";
                }
                //回覆訊息
                this.ReplyMessage(LineEvent.replyToken, responseMsg);
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                //回覆訊息
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #16
0
        public IActionResult POST()
        {
            //get configuration from appsettings.json
            var token       = _config.GetSection("LINE-Bot-Setting:channelAccessToken");
            var AdminUserId = _config.GetSection("LINE-Bot-Setting:adminUserID");
            var body        = ""; //for JSON Body
            //create vot instance
            var bot = new isRock.LineBot.Bot(token.Value);

            isRock.LineBot.MessageBase responseMsg = null;
            //message collection for response multi-message
            List <isRock.LineBot.MessageBase> responseMsgs =
                new List <isRock.LineBot.MessageBase>();

            try
            {
                //get JSON Body
                using (StreamReader reader = new StreamReader(Request.Body, System.Text.Encoding.UTF8))
                {
                    body = reader.ReadToEndAsync().Result;
                }
                //parsing JSON
                var ReceivedMessage = isRock.LineBot.Utility.Parsing(body);
                //Get LINE Event
                var LineEvent = ReceivedMessage.events.FirstOrDefault();
                //prepare reply message
                if (LineEvent.type.ToLower() == "message")
                {
                    switch (LineEvent.message.type.ToLower())
                    {
                    case "text":
                        //add text response
                        responseMsg =
                            new isRock.LineBot.TextMessage($"you said : {LineEvent.message.text}");
                        responseMsgs.Add(responseMsg);
                        //add ButtonsTemplate if user say "/Show ButtonsTemplate"
                        if (LineEvent.message.text.ToLower().Contains("/show buttonstemplate"))
                        {
                            //define actions
                            var act1 = new isRock.LineBot.MessageAction()
                            {
                                text = "test action1", label = "test action1"
                            };
                            var act2 = new isRock.LineBot.MessageAction()
                            {
                                text = "test action2", label = "test action2"
                            };

                            var tmp = new isRock.LineBot.ButtonsTemplate()
                            {
                                text              = "Button Template text",
                                title             = "Button Template title",
                                thumbnailImageUrl = new Uri("https://i.imgur.com/wVpGCoP.png"),
                            };

                            tmp.actions.Add(act1);
                            tmp.actions.Add(act2);
                            //add TemplateMessage into responseMsgs
                            responseMsgs.Add(new isRock.LineBot.TemplateMessage(tmp));
                        }
                        break;

                    case "sticker":
                        responseMsg =
                            new isRock.LineBot.StickerMessage(1, 2);
                        responseMsgs.Add(responseMsg);
                        break;

                    default:
                        responseMsg = new isRock.LineBot.TextMessage($"None handled message type : { LineEvent.message.type}");
                        responseMsgs.Add(responseMsg);
                        break;
                    }
                }
                else
                {
                    responseMsg = new isRock.LineBot.TextMessage($"None handled event type : { LineEvent.type}");
                    responseMsgs.Add(responseMsg);
                }

                //回覆訊息
                bot.ReplyMessage(LineEvent.replyToken, responseMsgs);
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                //如果有錯誤,push給admin
                bot.PushMessage(AdminUserId.Value, "Exception : \n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #17
0
        public IHttpActionResult POST()
        {
            try
            {
                //設定ChannelAccessToken(或抓取Web.Config)
                this.ChannelAccessToken = channelAccessToken;
                //取得Line Event(範例,只取第一個)
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }

                //回覆訊息
                if (LineEvent.type == "message")
                {
                    var reply = "";
                    reply = LineEvent.message.text;

                    if (LineEvent.message.type == "text") //收到文字
                    {
                        if (reply == "嗨" || reply == "你好" || reply == "妳好" || reply == "哈囉" || reply == "哈摟" || reply == "哈嘍" || reply == "Hello" || reply == "Hi" || reply == "HELLO" || reply == "HI" || reply == "hello" || reply == "hi")
                        {
                            //建立actions,作為ButtonTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.PostbackActon()
                            {
                                label = "開始聊天", data = "有什麼社交上的困擾嗎?"
                            });
                            actions.Add(new isRock.LineBot.UriActon()
                            {
                                label = "瀏覽學習頁面", uri = new Uri("http://140.131.114.147/detailsView")
                            });


                            var ButtonTemplateMsg = new isRock.LineBot.ButtonsTemplate()
                            {
                                title   = "嗨!",
                                text    = "請問您要:",
                                altText = "嗨 ButtonTemplate",
                                actions = actions
                            };
                            this.PushMessage(LineEvent.source.userId, ButtonTemplateMsg);
                        }
                        else if (reply == "使用說明")
                        {
                            //建立actions,作為ButtonTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.PostbackActon()
                            {
                                label = "開始聊天", data = "有什麼社交上的困擾嗎?"
                            });
                            actions.Add(new isRock.LineBot.UriActon()
                            {
                                label = "瀏覽學習頁面", uri = new Uri("http://140.131.114.147/detailsView")
                            });

                            //ButtonTemplate內容
                            var ButtonTemplateMsg = new isRock.LineBot.ButtonsTemplate()
                            {
                                title   = "使用說明",
                                text    = "我們可以針對您在校園社交上的問題進行解惑(ex:要和新同學聊什麼?),或是可以瀏覽我們的學習頁面網站。",
                                altText = "使用說明 ButtonTemplate",
                                actions = actions
                            };
                            //推播ButtonTemplate給用戶
                            this.PushMessage(LineEvent.source.userId, ButtonTemplateMsg);
                        }
                        else if (reply == "關於我們")
                        {
                            //建立actions,作為ButtonTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.UriActon()
                            {
                                label = "查看更多", uri = new Uri("http://140.131.114.147/about")
                            });

                            var ButtonTemplateMsg = new isRock.LineBot.ButtonsTemplate()
                            {
                                title   = "關於我們",
                                text    = "您好,我們是國立臺北商業大學 資訊管理系的學生。",
                                altText = "使用說明 ButtonTemplate",
                                actions = actions
                            };
                            this.PushMessage(LineEvent.source.userId, ButtonTemplateMsg);
                        }
                        else if (reply == "學習頁面")
                        {
                            var flex = @"
                                    [
                                    {
                                        ""type"": ""flex"",
                                        ""altText"": ""Closer | Learn Web"",
                                        ""contents"":
                                    {
                                      ""type"": ""bubble"",
                                      ""header"": {
                                                    ""type"": ""box"",
                                        ""layout"": ""horizontal"",
                                        ""contents"": [
                                          {
                                            ""type"": ""text"",
                                            ""text"": ""學習頁面"",
                                            ""weight"": ""bold"",
                                            ""color"": ""#aaaaaa"",
                                            ""size"": ""sm""
                                          }
                                        ]
                                      },
                                      ""hero"": {
                                        ""type"": ""image"",
                                        ""url"": ""https://imageshack.com/a/img924/8986/kuGMSb.png"",
                                        ""size"": ""full"",
                                        ""aspectRatio"": ""20:13"",
                                        ""aspectMode"": ""cover""
                                      },
                                      ""body"": {
                                        ""type"": ""box"",
                                        ""layout"": ""horizontal"",
                                        ""spacing"": ""md"",
                                        ""contents"": [
                                          {
                                            ""type"": ""box"",
                                            ""layout"": ""vertical"",
                                            ""flex"": 1,
                                            ""contents"": [
                                              {
                                                ""type"": ""image"",
                                                ""url"": ""https://imageshack.com/a/img922/3247/oaCfJg.jpg"",
                                                ""aspectMode"": ""cover"",
                                                ""aspectRatio"": ""4:3"",
                                                ""size"": ""sm"",
                                                ""gravity"": ""bottom""
                                              },
                                              {
                                                ""type"": ""image"",
                                                ""url"": ""https://imageshack.com/a/img922/4655/RrcctW.jpg"",
                                                ""aspectMode"": ""cover"",
                                                ""aspectRatio"": ""4:3"",
                                                ""margin"": ""md"",
                                                ""size"": ""sm""
                                              }
                                            ]
                                          },
                                          {
                                            ""type"": ""box"",
                                            ""layout"": ""vertical"",
                                            ""flex"": 2,
                                            ""contents"": [
                                              {
                                                ""type"": ""text"",
                                                ""text"": ""你的敵人,可能就是你的救星。"",
                                                ""gravity"": ""top"",
                                                ""size"": ""xs"",
                                                ""flex"": 1
                                              },
                                              {
                                                ""type"": ""separator""
                                              },
                                              {
                                                ""type"": ""text"",
                                                ""text"": ""完美溝通術:技巧大有學問的9項對話技巧"",
                                                ""gravity"": ""center"",
                                                ""size"": ""xs"",
                                                ""flex"": 2
                                              },
                                              {
                                                ""type"": ""separator""
                                              },
                                              {
                                                ""type"": ""text"",
                                                ""text"": ""你是腦補王嗎?小心變成偏執狂"",
                                                ""gravity"": ""center"",
                                                ""size"": ""xs"",
                                                ""flex"": 2
                                              },
                                              {
                                                ""type"": ""separator""
                                              },
                                              {
                                                ""type"": ""text"",
                                                ""text"": ""你是團體中的絆腳石嗎?"",
                                                ""gravity"": ""bottom"",
                                                ""size"": ""xs"",
                                                ""flex"": 1
                                              }
                                            ]
                                          }
                                        ]
                                      },
                                      ""footer"": {
                                        ""type"": ""box"",
                                        ""layout"": ""horizontal"",
                                        ""contents"": [
                                          {
                                            ""type"": ""button"",
                                            ""action"": {
                                              ""type"": ""uri"",
                                              ""label"": ""更多內容"",
                                              ""uri"": ""http://140.131.114.147""
                                            }
                                          }
                                        ]
                                      }
                                    }
                                    }
                                    ]
                                    ";
                            this.PushMessagesWithJSON(LineEvent.source.userId, flex);
                        }
                        else
                        {
                            //建立 MsQnAMaker Client
                            var helper = new isRock.MsQnAMaker.Client(
                                new Uri(Endpoint), QnAKey);
                            var QnAResponse = helper.GetResponse(reply.Trim());
                            var ret         = (from c in QnAResponse.answers
                                               orderby c.score descending
                                               select c
                                               ).Take(1);

                            var responseText = UnknowAnswer;
                            if (ret.FirstOrDefault().score > 0)
                            {
                                responseText = ret.FirstOrDefault().answer;
                            }
                            //回覆
                            this.ReplyMessage(LineEvent.replyToken, responseText);
                            Module.response = reply;

                            if (responseText == UnknowAnswer)
                            {
                                var    userInfo    = this.GetUserInfo(LineEvent.source.userId);
                                string managerText = "";
                                managerText = "用戶ID : " + LineEvent.source.userId + "\n" +
                                              $"用戶名稱:{userInfo.displayName}" + "\n" +
                                              "沒有在QnA Maker的問題:" + Module.response;

                                this.PushMessage(AdminUserId, managerText);
                            }
                            else
                            {
                                //建立actions,作為ButtonTemplate的用戶回覆行為
                                var actions = new List <isRock.LineBot.TemplateActionBase>();
                                actions.Add(new isRock.LineBot.PostbackActon()
                                {
                                    label = "繼續聊天", data = "還想問些什麼呢?"
                                });
                                actions.Add(new isRock.LineBot.PostbackActon()
                                {
                                    label = "結束聊天", data = "結束"
                                });


                                var ButtonTemplateMsg = new isRock.LineBot.ButtonsTemplate()
                                {
                                    title   = "還想問些什麼嗎?",
                                    text    = "選擇:",
                                    altText = "ButtonTemplate",
                                    actions = actions
                                };
                                this.PushMessage(LineEvent.source.userId, ButtonTemplateMsg);
                            }
                        }
                    }
                    if (LineEvent.message.type == "sticker") //收到貼圖
                    {
                        this.ReplyMessage(LineEvent.replyToken, 1, 2);
                    }
                }
                if (LineEvent.type == "postback")
                {
                    var data   = LineEvent.postback.data;
                    var repmsg = "";

                    if (data == "結束")
                    {
                        //建立actions,作為ButtonTemplate的用戶回覆行為
                        var actions = new List <isRock.LineBot.TemplateActionBase>();
                        actions.Add(new isRock.LineBot.PostbackActon()
                        {
                            label = "有", data = "有幫助"
                        });
                        actions.Add(new isRock.LineBot.PostbackActon()
                        {
                            label = "沒有", data = "沒有幫助"
                        });


                        var ButtonTemplateMsg = new isRock.LineBot.ButtonsTemplate()
                        {
                            title   = "感謝您本次的提問!",
                            text    = "請問我們的回答對您有幫助嗎?",
                            altText = "結束聊天 ButtonTemplate",
                            actions = actions
                        };
                        this.PushMessage(LineEvent.source.userId, ButtonTemplateMsg);
                    }
                    else if (data == "有幫助")
                    {
                        repmsg = "感謝您本次的提問!您的回饋使我們更加進步。";
                        this.ReplyMessage(LineEvent.replyToken, repmsg);
                    }
                    else if (data == "沒有幫助")
                    {
                        var    userInfo    = this.GetUserInfo(LineEvent.source.userId);
                        string managerText = "";
                        repmsg      = "感謝您本次的提問!我們會針對這次的對談進行修正。";
                        managerText = "用戶ID : " + LineEvent.source.userId + "\n" +
                                      $"用戶名稱:{userInfo.displayName}" + "\n" +
                                      "沒有幫助的訊息:" + Module.response;

                        this.ReplyMessage(LineEvent.replyToken, repmsg);
                        this.PushMessage(AdminUserId, managerText);
                    }
                    else
                    {
                        this.ReplyMessage(LineEvent.replyToken, data);
                    }
                }
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #18
0
        public IHttpActionResult POST()
        {
            try
            {
                //設定ChannelAccessToken(或抓取Web.Config)
                this.ChannelAccessToken = channelAccessToken;
                //取得Line Event(範例,只取第一個)
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                //回覆訊息
                if (LineEvent.type == "message")
                {
                    if (LineEvent.message.type == "text") //收到文字
                    {
                        if (LineEvent.message.text.ToLower() == "查詢")
                        {
                            var action = new List <isRock.LineBot.TemplateActionBase>();
                            action.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "新訂單數量",
                                text  = "回覆文字"
                            });
                            action.Add(new isRock.LineBot.UriAction()
                            {
                                label = "標題-開啟文字",
                                uri   = new Uri("https://www.google.com")
                            });
                            action.Add(new isRock.LineBot.PostbackAction()
                            {
                                label = "標題-發生postack",
                                data  = "abc=aaa%def=111"
                            });
                            action.Add(new isRock.LineBot.DateTimePickerAction()
                            {
                                label = "請選擇時間",
                                mode  = "datetime"
                            });

                            var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
                            {
                                text              = "ButtonsTemplate文字訊息",
                                title             = "ButtonsTemplate標題",
                                thumbnailImageUrl = new Uri("https://fakeimg.pl/300x250"),
                                actions           = action
                            };
                            this.ReplyMessage(LineEvent.replyToken, ButtonTemplate);
                        }
                    }
                    if (LineEvent.message.type == "sticker") //收到貼圖
                    {
                        this.ReplyMessage(LineEvent.replyToken, 1, 2);
                    }
                }
                if (LineEvent.type == "postback")
                {
                    var data = LineEvent.postback.data;
                    var dt   = LineEvent.postback.Params.datetime;
                    this.ReplyMessage(LineEvent.replyToken, $"觸發了postback \n 資料為 {data} \n 選擇結果:{dt}");
                }
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #19
0
        protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            var    connector        = new ConnectorClient(new Uri(turnContext.Activity.ServiceUrl), _config["MicrosoftAppId"], _config["MicrosoftAppPassword"]);
            var    reply            = (turnContext.Activity as Activity).CreateReply();
            string userWords        = turnContext.Activity.Text;
            string predictionResult = "";
            bool   createButtons    = false;
            bool   answerSurvey     = false;

            if (!string.IsNullOrWhiteSpace(userWords))
            {
                if (userWords.StartsWith("<<"))
                {
                    reply.Text   = "謝謝您!歡迎繼續發問喔!";
                    answerSurvey = true;
                }
                else
                {
                    var luisPredction = await GetLUISPrediction(userWords);

                    if (luisPredction["Intent"] != "None")
                    {
                        predictionResult = "OK,你想要" + luisPredction["Intent"] + "," + luisPredction["Entity"];
                        reply.Text       = predictionResult;
                    }
                    else
                    {
                        // Get the answer from the QnA maker
                        predictionResult = await GetQnAResponse(userWords);

                        if (predictionResult != "No good match found in KB.")
                        {
                            reply         = (turnContext.Activity as Activity).CreateReply(predictionResult);
                            createButtons = true;
                        }
                    }
                }

                if (reply.Text.Length == 0)
                {
                    reply.Text = "不好意思,機器人客服無法判斷您的意思,請重新說明您的問題";
                }

                if (turnContext.Activity.ChannelId.ToLower() == "line")
                {
                    // LINE ButtonsTemplate 有字數限制
                    // LINE Templates 手機上無法顯示
                    string puretext = System.Text.RegularExpressions.Regex.Replace(reply.Text, "<.*?>", string.Empty);
                    if (createButtons && puretext.Length <= 50)
                    {
                        var ButtonsTemplateMsg = new isRock.LineBot.ButtonsTemplate();
                        ButtonsTemplateMsg.text  = puretext + "請問有幫助到您嗎?";
                        ButtonsTemplateMsg.title = "查詢回覆";
                        var actions = new List <isRock.LineBot.TemplateActionBase>();
                        actions.Add(new isRock.LineBot.MessageAction()
                        {
                            label = "<<很有用>>", text = "<<很有用>>"
                        });
                        actions.Add(new isRock.LineBot.MessageAction()
                        {
                            label = "<<普通>>", text = "<<普通>>"
                        });
                        actions.Add(new isRock.LineBot.MessageAction()
                        {
                            label = "<<再加強>>", text = "<<再加強>>"
                        });
                        ButtonsTemplateMsg.actions = actions;
                        isRock.LineBot.Utility.ReplyTemplateMessage(reply.ReplyToId, ButtonsTemplateMsg, _config["LineAccessToken"]);
                    }
                    else
                    {
                        isRock.LineBot.Utility.ReplyMessage(reply.ReplyToId, reply.Text, _config["LineAccessToken"]);
                    }
                }
                else
                {
                    if (createButtons)
                    {
                        reply = (turnContext.Activity as Activity).CreateReply(reply.Text + "\n\n請問有幫助到您嗎?");
                        reply.SuggestedActions = new SuggestedActions()
                        {
                            Actions = new List <CardAction>()
                            {
                                new CardAction()
                                {
                                    Title = "<<很有用>>", Type = ActionTypes.ImBack, Value = "<<很有用>>"
                                },
                                new CardAction()
                                {
                                    Title = "<<普通>>", Type = ActionTypes.ImBack, Value = "<<普通>>"
                                },
                                new CardAction()
                                {
                                    Title = "<<再加強>>", Type = ActionTypes.ImBack, Value = "<<再加強>>"
                                }
                            },
                        };
                    }
                    await connector.Conversations.ReplyToActivityAsync(reply);
                }
            }

            if (answerSurvey)
            {
                CollectSurveyData(turnContext, userWords);
            }
            else
            {
                CollectRequestData(turnContext, predictionResult);
            }
            //await turnContext.SendActivityAsync(MessageFactory.Text($"Echo: {turnContext.Activity.Text}"), cancellationToken);
        }
Пример #20
0
        public IHttpActionResult POST()
        {
            try
            {
                //設定ChannelAccessToken(或抓取Web.Config)
                this.ChannelAccessToken = channelAccessToken;
                //取得Line Event(範例,只取第一個)
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                //回覆訊息
                if (LineEvent.type == "message")
                {
                    var    repmsg         = "";
                    string postData       = Request.Content.ReadAsStringAsync().Result;
                    var    ReceiveMessage = isRock.LineBot.Utility.Parsing(postData);
                    var    actions        = new
                                            List <isRock.LineBot.TemplateActionBase>();
                    var actions2 = new
                                   List <isRock.LineBot.TemplateActionBase>();
                    var actions3 = new
                                   List <isRock.LineBot.TemplateActionBase>();
                    var Medical = new
                                  isRock.LineBot.ButtonsTemplate();
                    var Hospital = new
                                   isRock.LineBot.ButtonsTemplate();
                    var ConfirmTemplateMsg = new
                                             isRock.LineBot.ConfirmTemplate();

                    //var botevent = this.ReceivedMessage.events.FirstOrDefault();
                    //var Postdata = botevent.postback.data;


                    //抓取用戶UserId、UserInfo
                    var UserId = ReceivedMessage.events.FirstOrDefault().source.userId;
                    isRock.LineBot.Bot bot1 = new isRock.LineBot.Bot(channelAccessToken);
                    var UserInfo            = bot1.GetUserInfo(UserId);
                    var Address             = ReceivedMessage.events[0].message.address;
                    var latitude            = ReceivedMessage.events[0].message.latitude;
                    var longitude           = ReceivedMessage.events[0].message.longitude;

                    string Message;
                    Message = "" + ReceivedMessage.events[0].type;
                    if (LineEvent.message.type == "location" || ReceivedMessage.events[0].message.text == "搜尋中...")
                    {
                        actions.Add(new isRock.LineBot.UriAction()
                        {
                            label = "查看官網", uri = new Uri("http://www.wellseen.com.tw/")
                        });
                        actions.Add(new isRock.LineBot.UriAction()
                        {
                            label = "Google Map導航", uri = new Uri("https://www.google.com.tw/maps/place/%E6%83%9F%E6%96%B0%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x4b1a2fedbf9b04ff!8m2!3d25.083483!4d121.5516588?hl=zh-TW")
                        });
                        var Column = new isRock.LineBot.Column
                        {
                            text              = "距離2.3公里,開車前往約7分",
                            title             = "惟新動物醫院",
                            thumbnailImageUrl = new Uri("https://6.share.photo.xuite.net/phibus/169386b/9792593/434439194_m.jpg"),
                            actions           = actions
                        };
                        actions2.Add(new isRock.LineBot.UriAction()
                        {
                            label = "查看官網", uri = new Uri("https://sites.google.com/site/cahvet/")
                        });
                        actions2.Add(new isRock.LineBot.UriAction()
                        {
                            label = "Google Map導航", uri = new Uri("https://www.google.com.tw/maps/place/%E5%8A%A0%E5%B7%9E%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x994d64cddf53704!8m2!3d25.0786487!4d121.5799052?hl=zh-TW")
                        });
                        var Column2 = new isRock.LineBot.Column
                        {
                            text              = "距離2.7公里,開車前往約8分",
                            title             = "加州動物醫院",
                            thumbnailImageUrl = new Uri("https://s3-media3.fl.yelpcdn.com/bphoto/l3Dq4i27euT0gijwXKjvXg/ls.jpg"),
                            actions           = actions2
                        };
                        actions3.Add(new isRock.LineBot.UriAction()
                        {
                            label = "查看官網", uri = new Uri("http://www.petline.com.tw/petline/cgi/index_factory.cgi?t=petfactory_view&ID=11010&R23=1000")
                        });
                        actions3.Add(new isRock.LineBot.UriAction()
                        {
                            label = "Google Map導航", uri = new Uri("https://www.google.com.tw/maps/place/%E8%A5%BF%E6%B9%96%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x8868f530d4bda2ab!8m2!3d25.0822514!4d121.5688866?hl=zh-TW")
                        });
                        var Column3 = new isRock.LineBot.Column
                        {
                            text              = "距離1.5公里,開車前往約5分",
                            title             = "西湖動物醫院",
                            thumbnailImageUrl = new Uri("https://www.3cu.com.tw/UploadFile/UserFiles/images/no_artist_p-b.gif"),
                            actions           = actions3
                        };

                        var CarouseTemplate = new isRock.LineBot.CarouselTemplate();
                        CarouseTemplate.columns.Add(Column);
                        CarouseTemplate.columns.Add(Column2);
                        CarouseTemplate.columns.Add(Column3);
                        repmsg = $"";
                        isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                        bot.PushMessage(UserId, CarouseTemplate);
                        return(Ok());
                    }



                    if (LineEvent.message.type == "text") //收到文字
                    {
                        //建立LuisClient
                        Microsoft.Cognitive.LUIS.LuisClient lc =
                            new Microsoft.Cognitive.LUIS.LuisClient(LuisAppId, LuisAppKey, true, Luisdomain);

                        //Call Luis API 查詢
                        var ret = lc.Predict(LineEvent.message.text).Result;
                        ///////////////////////////////
                        ///////////////////////////////
                        var      Uri   = "http://netinfo.takming.edu.tw/tip/";
                        var      uri1  = "https://petbird.tw/article2979.html";
                        var      uri2  = "https://kknews.cc/zh-tw/health/39a95vo.html";
                        var      uri3  = "https://read01.com/zh-tw/az4K3x.html#.WyYrqVUzaUk";
                        var      uri4  = "https://petbird.tw/article6910.html";
                        DateTime date1 = DateTime.Now;
                        if (ReceivedMessage.events[0].message.text == "詢問醫療" || ReceivedMessage.events[0].message.text == "醫療")
                        {
                            Medical.thumbnailImageUrl = new Uri("https://cdn-images-1.medium.com/max/2000/1*Vk4qnZdU-VkOlWiayzbIyQ.png");
                            Medical.text  = "其他相關醫療資訊";
                            Medical.title = "動物醫療";
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問疫苗", text = "疫苗"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問疾病", text = "疾病"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問晶片", text = "晶片"
                            });
                            Medical.actions = actions;
                            isRock.LineBot.Bot bot2 = new isRock.LineBot.Bot(channelAccessToken);
                            repmsg = $"";
                            bot2.PushMessage(UserId, Medical);
                            return(Ok());
                        }



                        if (ReceivedMessage.events[0].message.text == "research" || ReceivedMessage.events[0].message.text == "寵物受傷")
                        {
                            ConfirmTemplateMsg.text = "您的寵物是?";
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "狗", text = "dog"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "貓", text = "cat"
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }
                        if (ReceivedMessage.events[0].message.text == "dog")
                        {
                            ConfirmTemplateMsg.text = "您的狗狗怎麼了?";
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "生病", text = "Dsick"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "受傷", text = "Dhurt"
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }
                        else if (ReceivedMessage.events[0].message.text == "cat")
                        {
                            ConfirmTemplateMsg.text = "您的貓咪怎麼了?";
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "生病", text = "Csick"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "受傷", text = "Churt"
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }
                        if (ReceivedMessage.events[0].message.text == "Dsick")
                        {
                            ConfirmTemplateMsg.text = "您的狗狗生病了";
                            actions.Add(new isRock.LineBot.UriAction()
                            {
                                label = "生病症狀", uri = new Uri("https://petbird.tw/article2974.html")
                            });
                            actions.Add(new isRock.LineBot.UriAction()
                            {
                                label = "處理辦法", uri = new Uri("https://petbird.tw/article8971.html")
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }
                        else if (ReceivedMessage.events[0].message.text == "Dhurt")
                        {
                            ConfirmTemplateMsg.text = "您的狗狗受傷了";
                            actions.Add(new isRock.LineBot.UriAction()
                            {
                                label = "緊急處理", uri = new Uri("https://petbird.tw/article11192.html")
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "附近醫院", text = "附近的動物醫院"
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }
                        else if (ReceivedMessage.events[0].message.text == "Csick")
                        {
                            ConfirmTemplateMsg.text = "您的貓咪生病了";
                            actions.Add(new isRock.LineBot.UriAction()
                            {
                                label = "生病症狀", uri = new Uri("https://petbird.tw/article3359.html")
                            });
                            actions.Add(new isRock.LineBot.UriAction()
                            {
                                label = "處理辦法", uri = new Uri("https://petbird.tw/article9058.html")
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }
                        else if (ReceivedMessage.events[0].message.text == "Churt")
                        {
                            ConfirmTemplateMsg.text = "您的貓咪受傷了";
                            actions.Add(new isRock.LineBot.UriAction()
                            {
                                label = "緊急處理", uri = new Uri("https://petbird.tw/article6910.html")
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "附近醫院", text = "附近的動物醫院"
                            });
                            ConfirmTemplateMsg.actions = actions;
                            isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                            bot.PushMessage(UserId, ConfirmTemplateMsg);
                            return(Ok());
                        }



                        if (ret.TopScoringIntent.Name == "None")
                        {
                            Medical.thumbnailImageUrl = new Uri("https://cdn-images-1.medium.com/max/2000/1*Vk4qnZdU-VkOlWiayzbIyQ.png");
                            Medical.text  = "您可以透過以下來選擇您想詢問的資訊";
                            Medical.title = "動物醫生";
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問醫療", text = "詢問醫療"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問食品", text = "詢問食品"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問飼料牌子", text = "推薦的牌子"
                            });
                            Medical.actions = actions;
                            isRock.LineBot.Bot bot2 = new isRock.LineBot.Bot(channelAccessToken);
                            repmsg = $"你說了 '{LineEvent.message.text}' ,但不在我的服務範圍內喔!";
                            bot2.PushMessage(UserId, Medical);
                            return(Ok());
                        }



                        else if (ret.TopScoringIntent.Name == "點餐")
                        {
                            repmsg = $"你想 '{LineEvent.message.text}',要的是 '{ ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value}',這裡是我們的官網" + Uri;
                        }
                        else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "尿尿")
                        {
                            repmsg = $"那可能是因為狗狗沒喝水";
                        }
                        else if (ret.TopScoringIntent.Name == "詢問時間")
                        {
                            repmsg = $"你想 '{LineEvent.message.text}',現在時間" + date1.ToString("yyyy/MM/dd,hh:mm:ss");
                            //ScriptRuntime pyRunTime = Python.CreateRuntime();
                            // dynamic obj = pyRunTime.UseFile("PythonApplication1.py");
                            // obj.movie();
                            // repmsg = $"{obj.movie}";
                        }



                        else if (ret.Intents.Count() >= 0 && ret.TopScoringIntent.Name == "詢問醫療")
                        {
                            if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "動物醫院" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "獸醫院" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "醫院")
                            {
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "查看官網", uri = new Uri("http://www.wellseen.com.tw/")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "Google Map導航", uri = new Uri("https://www.google.com.tw/maps/place/%E6%83%9F%E6%96%B0%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x4b1a2fedbf9b04ff!8m2!3d25.083483!4d121.5516588?hl=zh-TW")
                                });
                                var Column = new isRock.LineBot.Column
                                {
                                    text              = "距離2.3公里,開車前往約7分",
                                    title             = "惟新動物醫院",
                                    thumbnailImageUrl = new Uri("https://6.share.photo.xuite.net/phibus/169386b/9792593/434439194_m.jpg"),
                                    actions           = actions
                                };
                                actions2.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "查看官網", uri = new Uri("https://sites.google.com/site/cahvet/")
                                });
                                actions2.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "Google Map導航", uri = new Uri("https://www.google.com.tw/maps/place/%E5%8A%A0%E5%B7%9E%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x994d64cddf53704!8m2!3d25.0786487!4d121.5799052?hl=zh-TW")
                                });
                                var Column2 = new isRock.LineBot.Column
                                {
                                    text              = "距離2.7公里,開車前往約8分",
                                    title             = "加州動物醫院",
                                    thumbnailImageUrl = new Uri("https://s3-media3.fl.yelpcdn.com/bphoto/l3Dq4i27euT0gijwXKjvXg/ls.jpg"),
                                    actions           = actions2
                                };
                                actions3.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "查看官網", uri = new Uri("http://www.petline.com.tw/petline/cgi/index_factory.cgi?t=petfactory_view&ID=11010&R23=1000")
                                });
                                actions3.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "Google Map導航", uri = new Uri("https://www.google.com.tw/maps/place/%E8%A5%BF%E6%B9%96%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x8868f530d4bda2ab!8m2!3d25.0822514!4d121.5688866?hl=zh-TW")
                                });
                                var Column3 = new isRock.LineBot.Column
                                {
                                    text              = "距離1.5公里,開車前往約5分",
                                    title             = "西湖動物醫院",
                                    thumbnailImageUrl = new Uri("https://www.3cu.com.tw/UploadFile/UserFiles/images/no_artist_p-b.gif"),
                                    actions           = actions3
                                };

                                var CarouseTemplate = new isRock.LineBot.CarouselTemplate();
                                CarouseTemplate.columns.Add(Column);
                                CarouseTemplate.columns.Add(Column2);
                                CarouseTemplate.columns.Add(Column3);
                                repmsg = $"";
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                bot.PushMessage(UserId, CarouseTemplate);
                                return(Ok());
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "疫苗" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "預防針")
                            {
                                Medical.thumbnailImageUrl = new Uri("https://bpic.588ku.com/element_origin_min_pic/17/07/14/7a018b83b03dc478b662d36bd22e671f.jpg");
                                Medical.text  = "相關動物疫苗的資訊";
                                Medical.title = "動物疫苗";
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "認識動物疫苗及種類", uri = new Uri("http://aetasah.pixnet.net/blog/post/321991-%E7%96%AB%E8%8B%97-%E5%9F%BA%E6%9C%AC%E8%AA%8D%E8%AD%98")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "施打疫苗週期", uri = new Uri("http://blog.xuite.net/g5223086/twblog4/188516832-%E5%B9%AB%E7%8B%97%E7%8B%97%E6%B3%A8%E5%B0%84%E7%96%AB%E8%8B%97%E3%80%81%E9%A9%85%E8%9F%B2%E7%9A%84%E6%99%82%E5%88%BB%E8%88%87%E7%A8%AE%E9%A1%9E")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "施打疫苗相關資訊", uri = new Uri("https://petbird.tw/article6685.html")
                                });
                                Medical.actions = actions;
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"您所{ret.TopScoringIntent.Name}而以上是查詢到的{ ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value}資訊";
                                bot.PushMessage(UserId, Medical);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "晶片")
                            {
                                Medical.thumbnailImageUrl = new Uri("https://bpic.588ku.com/element_origin_min_pic/17/07/14/7a018b83b03dc478b662d36bd22e671f.jpg");
                                Medical.text  = "相關動物晶片的資訊";
                                Medical.title = "動物晶片";
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "認識動物晶片與最佳位置", uri = new Uri("http://ckx613.pixnet.net/blog/post/10319749-%E3%80%90%E8%BD%89%E8%BC%89%E3%80%91%E8%AA%8D%E8%AD%98%E5%AF%B5%E7%89%A9%E6%99%B6%E7%89%87%E5%8F%8A%E6%A4%8D%E5%85%A5%E7%9A%84%E6%9C%80%E4%BD%B3%E4%BD%8D%E7%BD%AE")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "動保處寵物登記與植入晶片入口網站", uri = new Uri("https://animal.coa.gov.tw/html/index_02_5.html")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "附近的動物醫院", uri = new Uri("https://www.google.com.tw/maps/place/%E8%A5%BF%E6%B9%96%E5%8B%95%E7%89%A9%E9%86%AB%E9%99%A2/@25.0865262,121.5567785,15z/data=!4m8!1m2!2m1!1z54246Yar6Zmi!3m4!1s0x0:0x8868f530d4bda2ab!8m2!3d25.0822514!4d121.5688866?hl=zh-TW")
                                });
                                Medical.actions = actions;
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"您所{ret.TopScoringIntent.Name}而以上是查詢到的{ ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value}資訊";
                                bot.PushMessage(UserId, Medical);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "疾病")
                            {
                                Medical.thumbnailImageUrl = new Uri("https://cdn-images-1.medium.com/max/2000/1*Vk4qnZdU-VkOlWiayzbIyQ.png");
                                Medical.text  = "有關寵物疾病的資訊";
                                Medical.title = "動物疾病";
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "狗狗十大常見疾病", uri = new Uri("https://kknews.cc/zh-tw/health/qpz3ng.html")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "貓咪六大常見疾病", uri = new Uri("https://pet.talk.tw/article.aspx?Article_ID=20")
                                });
                                actions.Add(new isRock.LineBot.MessageAction()
                                {
                                    label = "查詢更多", text = "research"
                                });
                                Medical.actions = actions;
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"您所{ret.TopScoringIntent.Name}而以上是查詢到的{ ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value}";
                                bot.PushMessage(UserId, Medical);
                            }
                            else
                            {
                                Medical.thumbnailImageUrl = new Uri("https://cdn-images-1.medium.com/max/2000/1*Vk4qnZdU-VkOlWiayzbIyQ.png");
                                Medical.text  = "其他相關醫療資訊";
                                Medical.title = "動物醫療";
                                actions.Add(new isRock.LineBot.MessageAction()
                                {
                                    label = "詢問疫苗", text = "疫苗"
                                });
                                actions.Add(new isRock.LineBot.MessageAction()
                                {
                                    label = "詢問疾病", text = "疾病"
                                });
                                actions.Add(new isRock.LineBot.MessageAction()
                                {
                                    label = "詢問晶片", text = "晶片"
                                });
                                Medical.actions = actions;
                                isRock.LineBot.Bot bot2 = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"以上是有關醫療的資訊";
                                bot2.PushMessage(UserId, Medical);
                            }
                        }



                        else if (ret.Intents.Count() >= 0 && ret.TopScoringIntent.Name == "詢問狗狗")
                        {
                            if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "生病" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "不舒服" ||
                                ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "打噴嚏" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "發燒" ||
                                ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "流鼻水")
                            {
                                ConfirmTemplateMsg.text = "您的狗狗生病了";
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "生病症狀", uri = new Uri("https://petbird.tw/article2974.html")
                                });
                                actions.Add(new isRock.LineBot.UriAction()
                                {
                                    label = "處理辦法", uri = new Uri("https://petbird.tw/article8971.html")
                                });
                                ConfirmTemplateMsg.actions = actions;
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                bot.PushMessage(UserId, ConfirmTemplateMsg);
                                return(Ok());
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "呼吸困難" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "喘氣")
                            {
                                repmsg = $"1、保持安靜,避免患犬亂動以防加重呼吸困難。2、讓犬取坐姿勢,減少耗氧。3、取除異物,保持呼吸道暢通。4、嚴重的患犬立即送醫院進行治療。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "食慾不振")
                            {
                                repmsg = $"1、糧食內放肉沫盡量讓愛犬趁熱吃、趕快吃,因為此時肉中水分含量比較高,當時間一久會把狗糧泡軟了,泡軟的飼料對幼犬或是老犬沒什麼大礙,但對於成犬來說,牠們可是會不接受的。2、糧食內放肉條和「方法一」類似,但區別是狗飼料中不需要放多水分的肉沫,取而代之的是用牛肉乾之類的乾肉食品,其優點是不會弄濕狗糧,頗能大幅改善愛犬的食慾。3、糧食要多變化即使您的愛犬對某樣食物胃口再怎麼好,也要定期更換,不僅可以讓狗狗保持新鮮感,還能避免長期使用同種類同品牌的狗糧,可能造成的某些營養素缺少。貼心提醒:請掌握好少吃多餐的原則,狗狗一頓如果吃得太多、太脹,是難以快速消化的。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "便祕")
                            {
                                repmsg = $"1、 讓狗狗少吃動物內臟,少吃肉食,不要長期不變換的餵食某個牌子的狗糧。2、大量飲水,吃些富含植物纖維的瓜果蔬菜,偶爾可以啃食些青草。3、注意身材變化,稍有肥胖,可加大運動量,增加消耗。4、少啃食家畜的骨頭,否則大便必定乾燥。5、如果是帶狗狗去旅遊,到了新景點,最好先稍加休息。6、在狗排大便時,不要干擾它,周邊環境需保持安靜。7、對於老齡狗,更需要做好以上幾點。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "抓撓皮膚")
                            {
                                repmsg = $"狗狗抓撓皮膚可能是(真菌性皮膚病、蟎蟲性皮膚病、細菌性皮膚病) 解決辦法:1、剪短或者剃光患處毛髮:皮膚病的治療一般需要局部使用噴劑和擦劑,或全身使用藥浴治療,為了幫助藥物滲透,將患處被毛剪短或者剃光是很有必要的2、給狗狗戴上伊莉莎白脖圈或者穿上襪子:狗狗會抓撓或者啃咬患處,但抓撓或者啃咬都會加重皮膚病症狀,因此要對狗狗進行限制3、補充維生素或者卵磷脂:維生素B 和卵磷脂對皮膚有很好的作用,促進皮膚的細胞的新陳代謝,使皮膚病儘快癒合";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "牙床舌頭變色")
                            {
                                repmsg = $"牙床和舌頭的顏色顏色越紅者越健康,白色是貧血,也可能是腸道內寄生蟲或便血(細小病毒病或鉤蟲病)。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "搖頭" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "抓耳")
                            {
                                repmsg = $"搖頭、抓耳這是耳病的特有症狀,如果耳朵內骯髒又臭,可能有寄生蟲,耳尖上有皮屑的可能有疥癬蟲。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "飲水障礙")
                            {
                                repmsg = $"狗見到飲水盆往往主動走近想喝水。但是欲飲不能或進入口腔的水又滴出,這十之八九是咽喉部有病,如咽炎等。患狂犬病的狗,口極渴,由於咽麻痺不能飲水,有時見水可引起狂癲。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "發抖")
                            {
                                repmsg = $"狗狗在感到寒冷的時候會發抖,一些狗狗在洗澡後毛未擦乾也會發抖,這是正常現象。可是,如果狗狗在並不冷的時候發抖不停,就要引起家長的注意了。病態發抖的原因是狗狗的神經系統出了問題,比如腦炎、犬瘟熱等疾病,因為狗狗的神經遭到病毒的侵害,因此導致狗狗發抖。確定狗狗是非正常發抖,家長要將愛犬送往醫院就診。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "腹瀉")
                            {
                                repmsg = $"狗狗大都貪吃,吃得過多消化不了就會引起腹瀉,對於這種狗狗要禁食一天,但由寄生蟲或其它傳染病引起的腹瀉就不那麼簡單了。如果出現便血,家長更要引起足夠重視,謹防病毒性疾病。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "鼻子乾燥" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "鼻子發熱")
                            {
                                repmsg = $"狗鼻子變得乾燥、發熱,狗狗正常的鼻子應該是濕潤潤的,當狗狗發燒生病時,狗狗的鼻子就會發熱,鼻端變的乾燥,有時會出現裂開的現象。";
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "嘔吐")
                            {
                                repmsg = $"狗狗的嘔吐神經很發達,這是狗狗自我保護的一個功能。當狗狗吃了異物時,會主動吐出,一些狗狗不適應坐車,暈車嘔吐,這都是正常現象,家長不必過於擔心。";
                            }

                            Medical.thumbnailImageUrl = new Uri("https://cdn-images-1.medium.com/max/2000/1*Vk4qnZdU-VkOlWiayzbIyQ.png");
                            Medical.text  = "其他狗狗相關資訊";
                            Medical.title = "詢問狗狗";
                            actions2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問牌子", text = "推薦的牌子"
                            });
                            actions2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問食品", text = "詢問食品"
                            });
                            actions2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "詢問醫療", text = "詢問醫療"
                            });
                            Medical.actions = actions2;
                            isRock.LineBot.Bot bot2 = new isRock.LineBot.Bot(channelAccessToken);
                            repmsg = $"以上是有關狗狗相關的資訊";
                            bot2.PushMessage(UserId, Medical);
                        }



                        else if (ret.TopScoringIntent.Name == "詢問食品")
                        {
                            if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "巧克力")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"巧克力對狗來說是致命的毒藥,巧克力中毒的狗,在食用之後二到四小時,會有嘔吐和下痢的現象,狗狗也會顯現不安和活動增加的狀況,由於甲基黃漂吟有利尿作用,所以狗會有頻尿現象,都可作為狗主人研判的指標。 嚴重者,會在食用後的十二到三十六小時內死亡。如果狗狗不是一次食用巧克力過量中毒,而是持續幾天食用,則有可能死於心臟衰竭。";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "洋蔥")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"這些食物中含有二氧化硫,可能導致狗狗體內的紅血球破裂。若吃下太多,狗狗可能出現貧血、呼吸急促、血尿的狀況。小型犬尤其對這類食物更加敏感~飼主一定要小心!"; Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "蒜頭")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"這些食物中含有二氧化硫,可能導致狗狗體內的紅血球破裂。若吃下太多,狗狗可能出現貧血、呼吸急促、血尿的狀況。小型犬尤其對這類食物更加敏感~飼主一定要小心!"; Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "蔥")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"這些食物中含有二氧化硫,可能導致狗狗體內的紅血球破裂。若吃下太多,狗狗可能出現貧血、呼吸急促、血尿的狀況。小型犬尤其對這類食物更加敏感~飼主一定要小心!"; Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "韭蔡")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"這些食物中含有二氧化硫,可能導致狗狗體內的紅血球破裂。若吃下太多,狗狗可能出現貧血、呼吸急促、血尿的狀況。小型犬尤其對這類食物更加敏感~飼主一定要小心!";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "生雞蛋")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"生雞蛋的細菌風險大,近年也有多起雞蛋食安風波。建議飼主準備狗狗鮮食時,將雞蛋確實煮熟才能讓狗狗安心吃。";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "葡萄")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"有研究報告指出,葡萄與葡萄乾可能引起狗狗急性腎衰竭。雖然目前仍有許多爭議,但美國愛護動物協會(ASPCA)仍將葡萄列為危險食物。建議狗狗還是少碰葡萄為妙喔!";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "葡萄乾")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"有研究報告指出,葡萄與葡萄乾可能引起狗狗急性腎衰竭。雖然目前仍有許多爭議,但美國愛護動物協會(ASPCA)仍將葡萄列為危險食物。建議狗狗還是少碰葡萄為妙喔!";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "水果籽核")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"種子通常堅硬不好消化,部分種子具有毒性,更容易阻塞食道與腸胃。所以餵狗狗吃水果時,請確實去籽喔!";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                            else if (ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "吃甚麼" || ret.Entities.FirstOrDefault().Value.FirstOrDefault().Value == "吃什麼")
                            {
                                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                                repmsg = $"狗狗不能吃疏菜水果類(蘋果、杏仁、桃子、野莓、苦瓜、李子類、梅子類)、香蕉、花椰菜、櫻桃、洋菇、肉荳蔻、洋蔥、葡萄葡、萄乾、梅子、巧克力、肝臟、骨頭、生雞蛋、豬肉、牛奶、菇類、酒,";
                                Uri dogcanteat = new Uri("https://maoup.com.tw/wp-content/uploads/2018/02/180118_1.png");
                                bot.PushMessage(UserId, dogcanteat);
                            }
                        }



                        else if (ret.TopScoringIntent.Name == "詢問牌子")
                        {
                            isRock.LineBot.Bot bot =
                                new isRock.LineBot.Bot(ChannelAccessToken);  //傳入Channel access token
                            var ImageCarouselColumn1 = new isRock.LineBot.ImageCarouselColumn
                            {
                                //設定圖片
                                imageUrl = new Uri("https://img1.momoshop.com.tw/goodsimg/0004/272/609/4272609_B.jpg?t=1507335911"),
                                //設定回覆動作
                                action = new isRock.LineBot.MessageAction()
                                {
                                    label = "愛肯拿", text = "愛肯拿"
                                }
                            };
                            var ImageCarouselColumn2 = new isRock.LineBot.ImageCarouselColumn
                            {
                                //設定圖片
                                imageUrl = new Uri("https://a.ecimg.tw/items/DEBV6RA90078EG9/000001_1478528276.jpg"),
                                //設定回覆動作
                                action = new isRock.LineBot.MessageAction()
                                {
                                    label = "法國皇家", text = "法國皇家"
                                }
                            };
                            var ImageCarouselColumn3 = new isRock.LineBot.ImageCarouselColumn
                            {
                                //設定圖片
                                imageUrl = new Uri("https://a.ecimg.tw/items/DEBV6RA90078EG9/000001_1478528276.jpg"),
                                //設定回覆動作
                                action = new isRock.LineBot.MessageAction()
                                {
                                    label = "希爾思", text = "希爾思"
                                }
                            };
                            var ImageCarouselColumn4 = new isRock.LineBot.ImageCarouselColumn
                            {
                                //設定圖片
                                imageUrl = new Uri("https://a.ecimg.tw/items/DEBV6RA90078EG9/000001_1478528276.jpg"),
                                //設定回覆動作
                                action = new isRock.LineBot.MessageAction()
                                {
                                    label = "海洋之心", text = "海洋之心"
                                }
                            };
                            var ImageCarouselColumn5 = new isRock.LineBot.ImageCarouselColumn
                            {
                                //設定圖片
                                imageUrl = new Uri("https://a.ecimg.tw/items/DEBV6RA90078EG9/000001_1478528276.jpg"),
                                //設定回覆動作
                                action = new isRock.LineBot.MessageAction()
                                {
                                    label = "貝斯比", text = "貝斯比"
                                }
                            };
                            var ImageCarouselColumn6 = new isRock.LineBot.ImageCarouselColumn
                            {
                                //設定圖片
                                imageUrl = new Uri("https://a.ecimg.tw/items/DEBV6RA90078EG9/000001_1478528276.jpg"),
                                //設定回覆動作
                                action = new isRock.LineBot.MessageAction()
                                {
                                    label = "柏萊富", text = "柏萊富"
                                }
                            };
                            var ImageCarouselTemplate = new isRock.LineBot.ImageCarouselTemplate();

                            //這是範例,所以用一組樣板建立三個
                            ImageCarouselTemplate.columns.Add(ImageCarouselColumn1);
                            ImageCarouselTemplate.columns.Add(ImageCarouselColumn2);
                            ImageCarouselTemplate.columns.Add(ImageCarouselColumn3);
                            ImageCarouselTemplate.columns.Add(ImageCarouselColumn4);
                            ImageCarouselTemplate.columns.Add(ImageCarouselColumn5);
                            ImageCarouselTemplate.columns.Add(ImageCarouselColumn6);
                            //發送 CarouselTemplate
                            bot.PushMessage(AdminUserId, ImageCarouselTemplate);
                            repmsg = $"以上是部分狗糧的牌子";
                        }



                        //回覆
                        this.ReplyMessage(LineEvent.replyToken, repmsg);
                    }
                }

                //response OK
                return(Ok());
            }

            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #21
0
        public IHttpActionResult Post()
        {
            string MyLineChannelAccessToken = "znTqfeqd+8ZVKe7LxgSDAOf6zQH1MgujILXQP+sf2CsGhFgkC6XNth0w8yHyhPoswqsD2nLtnKeInRE3PKpyrXmXm3ZOBfBPgJdVmWjlElDkNzgk0k3q4Hr5TwXJB6qWhcLgyT4Cma84whA94GhZ5AdB04t89/1O/w1cDnyilFU=";
            string MyUserid = "U2a2428fbdcf1bcac5c044ae81a8ac994";

            try
            {
                //取得 http Post RawData(should be JSON)
                string postData = Request.Content.ReadAsStringAsync().Result;
                //剖析JSON
                var ReceivedMessage = isRock.LineBot.Utility.Parsing(postData);

                //建立LineBot物件實體
                isRock.LineBot.Bot LineBot = new isRock.LineBot.Bot(MyLineChannelAccessToken);

                if (ReceivedMessage.events.FirstOrDefault().type == "follow")
                {
                    var userInfo = LineBot.GetUserInfo(ReceivedMessage.events.FirstOrDefault().source.userId);
                    LineBot.ReplyMessage(ReceivedMessage.events.FirstOrDefault().replyToken, $"'{userInfo.displayName}' 您好,歡迎!您的ID是'{ReceivedMessage.events.FirstOrDefault().replyToken}'");
                }
                else if ("id".Equals(ReceivedMessage.events[0].message.text.ToLower()))
                {
                    var userInfo = LineBot.GetUserInfo(ReceivedMessage.events.FirstOrDefault().source.userId);
                    LineBot.ReplyMessage(ReceivedMessage.events.FirstOrDefault().replyToken, $"'{userInfo.displayName}' 您好!您的ID是'{ReceivedMessage.events.FirstOrDefault().replyToken}'");
                }
                else if ("hi".Equals(ReceivedMessage.events[0].message.text.ToLower()))
                {
                    var userInfo = LineBot.GetUserInfo(ReceivedMessage.events.FirstOrDefault().source.userId);
                    LineBot.ReplyMessage(ReceivedMessage.events.FirstOrDefault().replyToken, $"哈,'{userInfo.displayName}' 你來了...歡迎");
                }
                else if ("help".ToLower().Equals(ReceivedMessage.events[0].message.text.ToLower()))
                {
                    //發送圖片訊息
                    LineBot.PushMessage(MyUserid, "id:查詢使用者ID\nhi:打招呼\npic:秀圖片\nmenu:秀選單");
                }
                else if ("pic".ToLower().Equals(ReceivedMessage.events[0].message.text.ToLower()))
                {
                    //發送圖片訊息
                    LineBot.PushMessage(MyUserid,
                                        new Uri("https://attach.setn.com/newsimages/2016/06/11/555280-XXL.jpg"));
                }
                else if ("menu".ToLower().Equals(ReceivedMessage.events[0].message.text.ToLower()))
                {
                    //建立actions,作為ButtonTemplate的用戶回覆行為
                    var actions = new List <isRock.LineBot.TemplateActionBase>();
                    actions.Add(new isRock.LineBot.MessageActon()
                    {
                        label = "點選這邊等同用戶直接輸入某訊息", text = "/例如這樣"
                    });
                    actions.Add(new isRock.LineBot.UriActon()
                    {
                        label = "點這邊開啟網頁", uri = new Uri("http://www.google.com")
                    });
                    actions.Add(new isRock.LineBot.PostbackActon()
                    {
                        label = "點這邊發生postack", data = "abc=aaa&def=111"
                    });

                    //單一Button Template Message
                    var ButtonTemplate = new isRock.LineBot.ButtonsTemplate()
                    {
                        altText = "替代文字(在無法顯示Button Template的時候顯示)",
                        text    = "選單",
                        title   = "選單測試",
                        //設定圖片
                        thumbnailImageUrl = new Uri("https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE1qk4H?ver=e9fb&q=90&m=6&h=450&w=800&l=f&f=jpg&o=t"),
                        actions           = actions //設定回覆動作
                    };

                    //發送
                    LineBot.PushMessage(MyUserid, ButtonTemplate);
                }
                else
                {
                    //回覆訊息
                    string Message;
                    Message = string.Format("現在時間:{0}  您說了:{1}", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"), ReceivedMessage.events[0].message.text);
                    //回覆用戶
                    isRock.LineBot.Utility.ReplyMessage(ReceivedMessage.events[0].replyToken, Message, MyLineChannelAccessToken);

                    Random R = new Random();
                    isRock.LineBot.Utility.PushStickerMessage(MyUserid, 1, R.Next(1, 17), MyLineChannelAccessToken);
                }

                //回覆API OK
                return(Ok());
            }
            catch (Exception ex)
            {
                return(Ok());
            }
        }
Пример #22
0
            public isRock.LineBot.CarouselTemplate 怪物出牌玩家抽卡並暫存(玩家 玩家, 怪物 怪物, ref List <isRock.LineBot.MessageBase> responseMsgs)
            {
                _key = Guid.NewGuid().ToString();

                _key = _key.Replace('-', '=');

                Random rdm1 = new Random(unchecked ((int)DateTime.Now.Ticks));

                //敵人抽牌 (只抽一張)
                int 怪物抽到編號 = rdm1.Next(0, 怪物.牌庫.Count);

                //怪物出牌顯示
                var act1 = new isRock.LineBot.MessageAction()
                {
                    text = " ", label = " "
                };

                var tmp = new isRock.LineBot.ButtonsTemplate()
                {
                    text              = 怪物.稱 + "階級:" + 怪物.階級 + "HP:" + 怪物.血量,
                    title             = "看樣子要使用: " + 怪物.牌庫[怪物抽到編號].卡牌名稱,
                    thumbnailImageUrl = new Uri(怪物.圖片網址),
                };

                tmp.actions.Add(act1);
                responseMsgs.Add(new isRock.LineBot.TemplateMessage(tmp));


                List <卡牌> 玩家抽到 = new List <卡牌>();

                int 牌庫數量;
                int 玩家抽到編號 = 0;

                // 玩家抽牌(抽三張)
                while (玩家抽到.Count < 3)
                {
                    牌庫數量   = 玩家.牌庫.Count - 1;
                    玩家抽到編號 = rdm1.Next(0, 牌庫數量);
                    if (!玩家抽到.Contains(玩家.牌庫[玩家抽到編號]))
                    {
                        玩家抽到.Add(玩家.牌庫[玩家抽到編號]);
                        玩家.牌庫.Remove(玩家.牌庫[玩家抽到編號]);
                    }
                }

                string 抽到卡牌 = "";

                foreach (卡牌 卡牌 in 玩家抽到)
                {
                    if (玩家抽到[玩家抽到.Count - 1] == 卡牌)
                    {
                        抽到卡牌 += 卡牌.順序編號;
                    }
                    else
                    {
                        抽到卡牌 += 卡牌.順序編號 + ",";
                    }
                }

                //玩家出牌顯示
                responseMsgs.Add(new isRock.LineBot.TextMessage("請選擇應對方式"));

                var actions1 = new List <isRock.LineBot.TemplateActionBase>();

                actions1.Add(new isRock.LineBot.MessageAction()
                {
                    label = "使用此張卡牌", text = "RPG-TeM-遭遇戰-出牌-" + _key + "-" + 玩家抽到[0].卡牌名稱
                });
                var actions2 = new List <isRock.LineBot.TemplateActionBase>();

                actions2.Add(new isRock.LineBot.MessageAction()
                {
                    label = "使用此張卡牌", text = "RPG-TeM-遭遇戰-出牌-" + _key + "-" + 玩家抽到[1].卡牌名稱
                });
                var actions3 = new List <isRock.LineBot.TemplateActionBase>();

                actions3.Add(new isRock.LineBot.MessageAction()
                {
                    label = "使用此張卡牌", text = "RPG-TeM-遭遇戰-出牌-" + _key + "-" + 玩家抽到[2].卡牌名稱
                });

                var Column1 = new isRock.LineBot.Column
                {
                    text  = "等級: " + 玩家抽到[0].等級 + " 說明:" + 玩家抽到[0].說明,
                    title = 玩家抽到[0].卡牌名稱,
                    //設定圖片
                    thumbnailImageUrl = new Uri(玩家抽到[0].圖片網址),
                    actions           = actions1 //設定回覆動作
                };

                var Column2 = new isRock.LineBot.Column
                {
                    text  = "等級: " + 玩家抽到[1].等級 + " 說明:" + 玩家抽到[1].說明,
                    title = 玩家抽到[1].卡牌名稱,
                    //設定圖片
                    thumbnailImageUrl = new Uri(玩家抽到[1].圖片網址),
                    actions           = actions2 //設定回覆動作
                };

                var Column3 = new isRock.LineBot.Column
                {
                    text  = "等級: " + 玩家抽到[2].等級 + " 說明:" + 玩家抽到[2].說明,
                    title = 玩家抽到[2].卡牌名稱,
                    //設定圖片
                    thumbnailImageUrl = new Uri(玩家抽到[2].圖片網址),
                    actions           = actions3 //設定回覆動作
                };
                //建立CarouselTemplate
                var CarouselTemplate = new isRock.LineBot.CarouselTemplate();

                CarouselTemplate.columns.Add(Column1);
                CarouselTemplate.columns.Add(Column2);
                CarouselTemplate.columns.Add(Column3);

                儲存暫存(玩家, 怪物, 怪物抽到編號);

                return(CarouselTemplate);
            }
        public IHttpActionResult POST()
        {
            try
            {
                //設定ChannelAccessToken(或抓取Web.Config)
                this.ChannelAccessToken = channelAccessToken;
                //取得Line Event(範例,只取第一個)
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                //回覆訊息
                if (LineEvent.type == "message")
                {
                    if (LineEvent.message.type == "text") //收到文字
                    {
                        if (LineEvent.message.text.Contains("RPG-"))
                        {
                            //進到RPG指令區
                            if (LineEvent.message.text.Contains("TeM"))
                            {
                                List <isRock.LineBot.MessageBase> RetuenMessage = MessageCommand.RPGTeMCommand(LineEvent.message.text, LineEvent.source.roomId, LineEvent.source.userId);
                                this.ReplyMessage(LineEvent.replyToken, RetuenMessage);
                            }
                            else
                            {
                                string RetuenMessage = MessageCommand.RPGCommand(LineEvent.message.text, LineEvent.source.roomId, LineEvent.source.userId);
                                this.ReplyMessage(LineEvent.replyToken, RetuenMessage);
                            }
                        }
                        else if (LineEvent.message.text.Contains("多圖片問答-"))
                        {
                            isRock.LineBot.Bot bot;
                            bot = new isRock.LineBot.Bot(channelAccessToken);
                            //取得 http Post RawData(should be JSO
                            string postData        = Request.Content.ReadAsStringAsync().Result;
                            var    ReceivedMessage = isRock.LineBot.Utility.Parsing(postData);

                            //建立actions,作為ButtonTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.MessageActon()
                            {
                                label = "標題-文字回覆", text = "回覆文字"
                            });
                            actions.Add(new isRock.LineBot.UriActon()
                            {
                                label = "標題-Google", uri = new Uri("http://www.google.com")
                            });
                            actions.Add(new isRock.LineBot.PostbackActon()
                            {
                                label = "標題-發生postack", data = "abc=aaa&def=111"
                            });

                            //單一Column
                            var Column = new isRock.LineBot.Column
                            {
                                text  = "ButtonsTemplate文字訊息",
                                title = "ButtonsTemplate標題",
                                //設定圖片
                                thumbnailImageUrl = new Uri("https://arock.blob.core.windows.net/blogdata201706/22-124357-ad3c87d6-b9cc-488a-8150-1c2fe642d237.png"),
                                actions           = actions //設定回覆動作
                            };

                            //建立CarouselTemplate
                            var CarouselTemplate = new isRock.LineBot.CarouselTemplate();

                            //這是範例,所以用一組樣板建立三個
                            CarouselTemplate.columns.Add(Column);
                            CarouselTemplate.columns.Add(Column);
                            CarouselTemplate.columns.Add(Column);

                            this.ReplyMessage(LineEvent.replyToken, new isRock.LineBot.TemplateMessage(CarouselTemplate));
                        }
                        else if (LineEvent.message.text.Contains("圖片問答-"))
                        {
                            isRock.LineBot.Bot bot;
                            bot = new isRock.LineBot.Bot(channelAccessToken);
                            //取得 http Post RawData(should be JSO
                            string postData        = Request.Content.ReadAsStringAsync().Result;
                            var    ReceivedMessage = isRock.LineBot.Utility.Parsing(postData);

                            //建立actions,作為ButtonTemplate的用戶回覆行為
                            var act1 = new isRock.LineBot.MessageAction()
                            {
                                text = "test action1", label = "test action1"
                            };
                            var act2 = new isRock.LineBot.MessageAction()
                            {
                                text = "test action2", label = "test action2"
                            };

                            var tmp = new isRock.LineBot.ButtonsTemplate()
                            {
                                text              = "Button Template text",
                                title             = "Button Template title",
                                thumbnailImageUrl = new Uri("https://i.imgur.com/wVpGCoP.png"),
                            };

                            tmp.actions.Add(act1);
                            tmp.actions.Add(act2);

                            //var UserID = isRock.LineBot.Utility.Parsing(postData).events[0].source.userId;
                            //bot.PushMessage(UserID, ButtonTemplate);
                            this.ReplyMessage(LineEvent.replyToken, new isRock.LineBot.TemplateMessage(tmp));
                        }
                        else if (LineEvent.message.text.Contains("圖-"))
                        {
                            //isRock.LineBot.ImagemapMessage img = new isRock.LineBot.ImagemapMessage(new Uri("http://"));
                            this.ReplyMessage(LineEvent.replyToken, new Uri("https://i.imgur.com/QqjmONg.png"));
                        }
                        else if (LineEvent.message.text.Contains("相關代號"))
                        {
                            string 回覆訊息 = "";

                            回覆訊息 += "房間編號: " + LineEvent.source.roomId + "\n";
                            回覆訊息 += "玩家編號: " + LineEvent.source.userId + "\n";

                            this.ReplyMessage(LineEvent.replyToken, 回覆訊息);
                        }
                        else if (LineEvent.message.text.Contains("測試"))
                        {
                            List <isRock.LineBot.MessageBase> responseMsgs = new List <isRock.LineBot.MessageBase>();
                            isRock.LineBot.MessageBase        responseMsg  = null;

                            //add text response
                            responseMsg = new isRock.LineBot.TextMessage($"you said : {LineEvent.message.text}");
                            responseMsgs.Add(responseMsg);
                            //add ButtonsTemplate if user say "/Show ButtonsTemplate"
                            if (LineEvent.message.text.ToLower().Contains("show buttonstemplate"))
                            {
                                //define actions
                                var act1 = new isRock.LineBot.MessageAction()
                                {
                                    text = "test action1", label = "test action1"
                                };
                                var act2 = new isRock.LineBot.MessageAction()
                                {
                                    text = "test action2", label = "test action2"
                                };

                                var tmp = new isRock.LineBot.ButtonsTemplate()
                                {
                                    text              = "Button Template text",
                                    title             = "Button Template title",
                                    thumbnailImageUrl = new Uri("https://i.imgur.com/wVpGCoP.png"),
                                };

                                tmp.actions.Add(act1);
                                tmp.actions.Add(act2);
                                //add TemplateMessage into responseMsgs
                                responseMsgs.Add(new isRock.LineBot.TemplateMessage(tmp));
                            }

                            this.ReplyMessage(LineEvent.replyToken, responseMsgs);
                        }
                    }

                    //else
                    //{
                    //    this.ReplyMessage(LineEvent.replyToken, "你說了:" + LineEvent.message.text);
                    //}
                    if (LineEvent.message.type == "sticker") //收到貼圖
                    {
                        this.ReplyMessage(LineEvent.replyToken, 1, 2);
                    }
                }
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                this.ReplyMessage(LineEvent.replyToken, "發生錯誤:\n" + ex.Message);
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }
Пример #24
0
        public IHttpActionResult POST()
        {
            try
            {
                var NewToken = isRock.LineBot.Utility.IssueChannelAccessToken(channelShortID, channelShortSecret);

                //this.ChannelAccessToken = channelAccessToken;
                this.ChannelAccessToken = NewToken.access_token;
                //取得Line Event(範例,只取第一個)
                var LineEvent = this.ReceivedMessage.events.FirstOrDefault(); //JSON轉成物件
                //isRock.LineBot.Bot bot = new isRock.LineBot.Bot(channelAccessToken);
                //short channel
                isRock.LineBot.Bot bot = new isRock.LineBot.Bot(NewToken.access_token);

                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                //回覆訊息

                string lineID = ReceivedMessage.events.FirstOrDefault().source.userId; //使用者的發送資源碼
                var    userid = bot.GetUserInfo(lineID).displayName;                   //取得使用者的名稱

                #region 回復訊息 功能

                if (LineEvent.type == "message")
                {
                    if (LineEvent.message.type == "text") //收到文字
                    {
                        #region 建立主選單
                        if (LineEvent.message.text.ToLower() == "主選單")
                        {
                            //建立actions, 作為ButtonTemplate的用戶回覆行為
                            var actionMain = new List <isRock.LineBot.TemplateActionBase>();
                            actionMain.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "關於熱量", text = "關於熱量"
                            });
                            actionMain.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "代謝率計算", text = "代謝率計算"
                            });
                            actionMain.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "疾病查詢", text = "疾病查詢"
                            });
                            actionMain.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "認識毒品", text = "毒品"
                            });

                            var BtnMain = new isRock.LineBot.ButtonsTemplate();
                            {
                                BtnMain.thumbnailImageUrl = new Uri("https://scontent.ftpe8-4.fna.fbcdn.net/v/t1.0-9/42989840_279619006211005_2212480676580556800_n.jpg?_nc_cat=110&oh=827a424e40ab2efa52b280c3674ba26d&oe=5C5EFB31");
                                BtnMain.text  = "功能選單";
                                BtnMain.title = "請選擇以下功能: ";
                                //加入動作
                                BtnMain.actions = actionMain;
                            }//上面文字

                            this.ReplyMessage(LineEvent.replyToken, BtnMain);
                        }// end of 主選單 tempalte MSG
                        #endregion

                        #region 認識毒品(( 改 完成
                        else if (LineEvent.message.text.ToLower() == "毒品")
                        {
                            var actions_Drugs = new List <isRock.LineBot.TemplateActionBase>();
                            actions_Drugs.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "一級毒品", text = "一級毒品"
                            });
                            actions_Drugs.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "二級毒品", text = "二級毒品"
                            });
                            actions_Drugs.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "三級 & 四級毒品", text = "三級 & 四級毒品"
                            });

                            var BtnTemplateMsg_Drugs = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                            {
                                //----功能選擇 文字
                                BtnTemplateMsg_Drugs.thumbnailImageUrl = new Uri("https://i.screenshot.net/0gq8bx1");//照片
                                BtnTemplateMsg_Drugs.text  = "認識毒品/藥物";
                                BtnTemplateMsg_Drugs.title = "請選以下選項";
                                //add action
                                BtnTemplateMsg_Drugs.actions = actions_Drugs;
                            };
                            this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs);
                        }//end if 認識毒品

                        /*
                         * 一級毒品 進度底下
                         * 所有包含類別的底下
                         * 送出對印的圖片
                         */
                        if (LineEvent.message.text.ToLower() == "一級毒品")
                        {
                            var actions_Drugs1 = new List <isRock.LineBot.TemplateActionBase>();
                            actions_Drugs1.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "古柯鹼", text = "古柯鹼"
                            });
                            actions_Drugs1.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "海洛因", text = "海洛因"
                            });
                            actions_Drugs1.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "嗎啡", text = "嗎啡"
                            });
                            actions_Drugs1.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "鴉片", text = "鴉片"
                            });


                            var BtnTemplateMsg_Drugs1 = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                            {
                                //----功能選擇 文字
                                BtnTemplateMsg_Drugs1.thumbnailImageUrl = new Uri("https://i.screenshot.net/pzertmn");//照片
                                BtnTemplateMsg_Drugs1.text  = "一級毒品";
                                BtnTemplateMsg_Drugs1.title = "包含:";
                                //add action
                                BtnTemplateMsg_Drugs1.actions = actions_Drugs1;
                            };
                            this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs1);
                        }//進入一級毒品底下

                        if (LineEvent.message.text.ToLower() == "古柯鹼" || LineEvent.message.text.ToLower() == "海洛因" || LineEvent.message.text.ToLower() == "嗎啡" || LineEvent.message.text.ToLower() == "鴉片")
                        {
                            if (LineEvent.message.text == "古柯鹼")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-4.fna.fbcdn.net/v/t1.0-9/44512417_289710488535190_8327672820775518208_n.jpg?_nc_cat=107&_nc_ht=scontent.ftpe7-4.fna&oh=43592844c9d185eb089863932dc00d8b&oe=5C4B9525"));
                            }
                            if (LineEvent.message.text == "海洛因")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-1.fna.fbcdn.net/v/t1.0-9/44543147_289710641868508_8472298113527185408_n.jpg?_nc_cat=110&_nc_ht=scontent.ftpe7-1.fna&oh=b35547ec597bed827be370b523a1099d&oe=5C3D6DF3"));
                            }
                            if (LineEvent.message.text == "嗎啡")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-2.fna.fbcdn.net/v/t1.0-9/44755107_289710495201856_2598789976715952128_n.jpg?_nc_cat=109&_nc_ht=scontent.ftpe7-2.fna&oh=d354ec18b75fa7413966149b0647c441&oe=5C4EBED9"));
                            }
                            if (LineEvent.message.text == "鴉片")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-1.fna.fbcdn.net/v/t1.0-9/44474645_289710588535180_2885157204644593664_n.jpg?_nc_cat=110&_nc_ht=scontent.ftpe7-1.fna&oh=778233fa67c2d19d5181956a3442ff4b&oe=5C55C2B4"));
                            }
                        }//LineEvent.message.text.ToLower() == "古柯鹼" || LineEvent.message.text.ToLower() == "海洛因" || LineEvent.message.text.ToLower() == "嗎啡" || LineEvent.message.text.ToLower() == "鴉片"


                        //二類
                        if (LineEvent.message.text.ToLower() == "二級毒品")
                        {
                            var actions_Drugs2 = new List <isRock.LineBot.TemplateActionBase>();
                            actions_Drugs2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "大麻", text = "大麻"
                            });
                            actions_Drugs2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "安非他命", text = "安非他命"
                            });
                            actions_Drugs2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "搖頭丸", text = "搖頭丸"
                            });
                            actions_Drugs2.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "魔菇", text = "魔菇"
                            });


                            var BtnTemplateMsg_Drugs2 = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                            {
                                //----功能選擇 文字
                                BtnTemplateMsg_Drugs2.thumbnailImageUrl = new Uri("https://i.screenshot.net/pzertmn");//照片
                                BtnTemplateMsg_Drugs2.text  = "二級毒品";
                                BtnTemplateMsg_Drugs2.title = "包含:";
                                //add action
                                BtnTemplateMsg_Drugs2.actions = actions_Drugs2;
                            };

                            this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs2);
                        }//end if 2

                        if (LineEvent.message.text.ToLower() == "大麻" || LineEvent.message.text.ToLower() == "安非他命" || LineEvent.message.text.ToLower() == "搖頭丸" || LineEvent.message.text.ToLower() == "魔菇")
                        {
                            if (LineEvent.message.text == "大麻")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-4.fna.fbcdn.net/v/t1.0-9/44532974_289710661868506_723348900114595840_n.jpg?_nc_cat=105&_nc_ht=scontent.ftpe7-4.fna&oh=d31afb7b26f0ed3f6d4be0b35c9cbb1b&oe=5C40D05B"));
                            }
                            if (LineEvent.message.text == "安非他命")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-3.fna.fbcdn.net/v/t1.0-9/44600272_289710511868521_4920973721583222784_n.jpg?_nc_cat=102&_nc_ht=scontent.ftpe7-3.fna&oh=21dd7ae8d74629f896e4134968959fdf&oe=5C8AC861"));
                            }
                            if (LineEvent.message.text == "搖頭丸")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-2.fna.fbcdn.net/v/t1.0-9/44442011_289710581868514_2693626711492263936_n.jpg?_nc_cat=109&_nc_ht=scontent.ftpe7-2.fna&oh=c81b10c33dd39dfe150b707052de1c0d&oe=5C478727"));
                            }
                            if (LineEvent.message.text == "魔菇")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-2.fna.fbcdn.net/v/t1.0-9/44468789_289710571868515_1123661202384224256_n.jpg?_nc_cat=109&_nc_ht=scontent.ftpe7-2.fna&oh=63136c2f2a7f2f7cbb2dd68f27e95bb7&oe=5C499DC6"));
                            }
                        }

                        //三類&四類
                        if (LineEvent.message.text.ToLower() == "三級 & 四級毒品")
                        {
                            var actions_Drugs34 = new List <isRock.LineBot.TemplateActionBase>();
                            actions_Drugs34.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "3級 K他命(氯胺酮)", text = "愷他命"
                            });
                            actions_Drugs34.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "3級 FM2", text = "強暴丸"
                            });
                            actions_Drugs34.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "4級 蝴蝶片", text = "蝴蝶片"
                            });


                            var BtnTemplateMsg_Drugs34 = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                            {
                                //----功能選擇 文字
                                BtnTemplateMsg_Drugs34.thumbnailImageUrl = new Uri("https://i.screenshot.net/pzertmn");//照片
                                BtnTemplateMsg_Drugs34.text  = "三級 & 四級毒品";
                                BtnTemplateMsg_Drugs34.title = "包含:";
                                //add action
                                BtnTemplateMsg_Drugs34.actions = actions_Drugs34;
                            };

                            this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs34);
                        }//end of 3&4

                        if (LineEvent.message.text.ToLower() == "愷他命" || LineEvent.message.text.ToLower() == "強暴丸" || LineEvent.message.text.ToLower() == "蝴蝶片")
                        {
                            if (LineEvent.message.text == "愷他命")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-2.fna.fbcdn.net/v/t1.0-9/44654928_289710501868522_8126295144434499584_n.jpg?_nc_cat=104&_nc_ht=scontent.ftpe7-2.fna&oh=7019110757b0d7f22369d838959794cb&oe=5C3C309C"));
                            }
                            if (LineEvent.message.text == "強暴丸")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-2.fna.fbcdn.net/v/t1.0-9/44471505_289710628535176_1379139201613692928_n.jpg?_nc_cat=104&_nc_ht=scontent.ftpe7-2.fna&oh=1dbf504de3bbb248b19d38d0423d37df&oe=5C4D8773"));
                            }
                            if (LineEvent.message.text == "蝴蝶片")
                            {
                                this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-2.fna.fbcdn.net/v/t1.0-9/44487736_289710565201849_6465331643535065088_n.jpg?_nc_cat=104&_nc_ht=scontent.ftpe7-2.fna&oh=8c3ebc28aa54828d6c95589b79896813&oe=5C3EC72A"));
                            }
                        }


                        #endregion

                        /*
                         * 問題!!!!!!!!!
                         * LineEvent.message.type == "text" 會戶擋
                         * 擺到外投沒關係
                         * 解決方法: 想法一 :大雜燴 放到外投
                         */

                        /*
                         * 四大功能
                         * 關於熱量  代謝率計算 疾病查詢 認識毒品
                         * 先進入選項
                         * 在建立選項表單
                         */

                        /*
                         * 關於熱量
                         * 1.建立表單
                         * 2.進入選項 和選項的平行選擇條件
                         */

                        #region QA 關於熱量 和 疾病
                        else if (LineEvent.message.text.ToLower() == "關於熱量")
                        {
                            var actionCal = new List <isRock.LineBot.TemplateActionBase>();
                            actionCal.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "查詢食物熱量", text = "查詢食物熱量"
                            });
                            actionCal.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "熱量問答", text = "熱量問答"
                            });

                            var BtnCal = new isRock.LineBot.ButtonsTemplate();
                            {
                                BtnCal.thumbnailImageUrl = new Uri("https://scontent.ftpe7-3.fna.fbcdn.net/v/t1.0-9/40685223_264561371050102_1948310784530448384_n.jpg?_nc_fx=ftpe7-3&_nc_cat=0&oh=c148736b5a0996f8406d85fada463570&oe=5C25CA17");
                                BtnCal.text  = "功能選單";
                                BtnCal.title = "請選擇以下功能: ";
                                //加入動作
                                BtnCal.actions = actionCal;
                            }//上面文字

                            this.ReplyMessage(LineEvent.replyToken, BtnCal);
                        }//進入關於熱量的底層

                        if (LineEvent.message.text.ToLower() == "查詢食物熱量" || LineEvent.message.text.ToLower() == "熱量問答")
                        {
                            if (LineEvent.message.text == "查詢食物熱量")
                            {
                                this.ReplyMessage(LineEvent.replyToken, "您可以輸入以下這些: 雞肉 牛肉 豬肉 羊肉 蝦肉 魚肉 白飯 雞蛋 白吐司 麵 番薯 馬鈴薯 起司 香蕉 豆腐 奶油 牛奶 豆漿 油");
                            }//查詢食物熱量

                            else if (LineEvent.message.text == "熱量問答")
                            {
                                this.ReplyMessage(LineEvent.replyToken, "您可以輸入以下這些:\n 成年人一天需要多少熱量?\n兒童一天需要多少熱量?\n青少年一天需要多少熱量? \n基礎代謝\n");
                            }
                        }//進入熱量 食物 QA



                        else if (LineEvent.message.text.ToLower() == "疾病查詢")
                        {
                            this.ReplyMessage(LineEvent.replyToken, "您可以問我: 直接輸入疾病(ex:肺炎,糖尿病,大腸癌,高血壓,中風.....)\n或是輸入症狀(兩個以上 1ex:眼睛紅腫 有分泌物 睜不開 2ex:胸痛 胸悶 ) ");
                            //var actions_Sick = new List<isRock.LineBot.TemplateActionBase>();
                            //actions_Sick.Add(new isRock.LineBot.MessageAction() { label = "疾病症狀查詢", text = "疾病症狀查詢" });
                            //actions_Sick.Add(new isRock.LineBot.MessageAction() { label = "疾病的分類", text = "疾病的分類" });


                            //var BtnTemplateMsg_Sick = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                            //{

                            //    //----功能選擇 文字
                            //    BtnTemplateMsg_Sick.thumbnailImageUrl = new Uri("https://scontent.ftpe7-3.fna.fbcdn.net/v/t1.0-9/40912906_265044184335154_3090929470048043008_n.jpg?_nc_fx=ftpe7-3&_nc_cat=0&oh=480ce3da7f50cd926a57678c636ea6a0&oe=5C3A5C69");//照片
                            //    BtnTemplateMsg_Sick.text = "查詢";
                            //    BtnTemplateMsg_Sick.title = "請選以下選項";
                            //    //add action
                            //    BtnTemplateMsg_Sick.actions = actions_Sick;
                            //};

                            //this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Sick);
                        }// 疾病查詢

                        //if (LineEvent.message.text.ToLower() == "疾病症狀查詢" || LineEvent.message.text.ToLower() == "疾病的分類")
                        //{
                        //    if (LineEvent.message.text== "疾病症狀查詢")
                        //    {
                        //        this.ReplyMessage(LineEvent.replyToken,"您可以打:疾病or病狀");
                        //    }

                        //    if (LineEvent.message.text == "疾病的分類")
                        //    {
                        //        this.ReplyMessage(LineEvent.replyToken, "您可以直接打:疾病的名稱");
                        //    }
                        //}

                        if (ReceivedMessage.events[0].message.type == "text") //收到文字
                        {
                            //建立 MsQnAMaker Client
                            var helper      = new isRock.MsQnAMaker.Client(new Uri(DatabasesQAEpoint), DatabasesQAKey);
                            var QnAResponse = helper.GetResponse(LineEvent.message.text.Trim());
                            var ret         = (from c in QnAResponse.answers
                                               orderby c.score descending
                                               select c
                                               ).Take(1);
                            //var data = "雞肉 牛肉 豬肉 羊肉 蝦肉 魚肉 白飯 雞蛋 白吐司 麵 番薯 馬鈴薯 起司 香蕉 豆腐 奶油 牛奶 豆漿 油 ";
                            var responseText = "";// UnknowAnswer + data;
                            if (ret.FirstOrDefault().score > 0)
                            {
                                responseText = ret.FirstOrDefault().answer;
                            }

                            //回覆
                            this.ReplyMessage(LineEvent.replyToken, responseText);
                        }//if

                        #endregion



                        #region 基礎代謝率計算(( 改


                        //  //收集定義者資料 switch 那一塊
                        //  isRock.LineBot.Conversation.InformationCollector<LeaveRequest> CIC = new isRock.LineBot.Conversation.InformationCollector<LeaveRequest>(channelAccessToken);

                        //  var responseMsg = "";

                        //  //取得 http post rawData
                        //  string postData = Request.Content.ReadAsStringAsync().Result;
                        //  var ReMSG = isRock.LineBot.Utility.Parsing(postData);
                        //  LeaveRequest lr = new LeaveRequest(); // 計算的list


                        //  //定義接收結果
                        //  ProcessResult<LeaveRequest> result;

                        //  //確認是否有進入
                        ////  this.ReplyMessage(LineEvent.replyToken, "請輸入'計算',就會開始計算基礎代謝率");

                        //  if ( LineEvent.message.type == "text" && ReceivedMessage.events[0].message.text == "算")
                        //  {
                        //      //把訊息丟給CIC
                        //      result = CIC.Process(ReceivedMessage.events[0], true);
                        //      responseMsg = "開始計算\n";
                        //  }
                        //  else
                        //  {
                        //      //把訊息丟給CIC
                        //      result = CIC.Process(ReceivedMessage.events[0]);
                        //  }

                        //  //處理 CIC回覆的結果
                        //  switch (result.ProcessResultStatus)
                        //  {
                        //      case ProcessResultStatus.Processed:
                        //          //取得候選訊息發送
                        //          responseMsg += result.ResponseMessageCandidate;
                        //          break;
                        //      case ProcessResultStatus.Done:
                        //          responseMsg += result.ResponseMessageCandidate;
                        //          responseMsg += $"蒐集到的資料有...\n";
                        //          double bmi = (lr.Hight) / 100 / Math.Pow(lr.Weight, 2);
                        //          responseMsg += $" Newtonsoft.Json.JsonConvert.SerializeObject(result.ConversationState.ConversationEntity)\n";
                        //          responseMsg += $"BMI為{bmi}";
                        //          break;
                        //      //case ProcessResultStatus.Pass:
                        //      //    responseMsg = $"你說的 '{ReceivedMessage.events[0].message.text}' 我看不懂,如果想要請假,請跟我說 : 『我要請假』";
                        //      //    break;
                        //      case ProcessResultStatus.Exception:
                        //          //取得候選訊息發送
                        //          responseMsg += result.ResponseMessageCandidate;
                        //          break;
                        //      case ProcessResultStatus.Break:
                        //          //取得候選訊息發送
                        //          responseMsg += result.ResponseMessageCandidate;
                        //          break;
                        //      case ProcessResultStatus.InputDataFitError:
                        //          responseMsg += "\n資料型態不合\n";
                        //          responseMsg += result.ResponseMessageCandidate;
                        //          break;
                        //      default:
                        //          //取得候選訊息發送
                        //          responseMsg += result.ResponseMessageCandidate;
                        //          break;
                        //  }



                        //end of 代謝率計算



                        #endregion



                        #region 四個功能
                        //if (LineEvent.message.text.ToLower() == "關於熱量" || LineEvent.message.text.ToLower() == "代謝率計算" || LineEvent.message.text.ToLower() == "疾病查詢" || LineEvent.message.text.ToLower() == "認識毒品")
                        //{


                        //    #region 關於熱量
                        //    if (LineEvent.message.text == "關於熱量")
                        //    {
                        //        var actionCal = new List<isRock.LineBot.TemplateActionBase>();
                        //        actionCal.Add(new isRock.LineBot.MessageAction() { label = "查詢食物熱量", text = "查詢食物熱量" });
                        //        actionCal.Add(new isRock.LineBot.MessageAction() { label = "熱量有關QA", text = "熱量有關QA" });

                        //        var BtnCal = new isRock.LineBot.ButtonsTemplate();
                        //        {
                        //            BtnCal.thumbnailImageUrl = new Uri("https://scontent.ftpe7-3.fna.fbcdn.net/v/t1.0-9/40685223_264561371050102_1948310784530448384_n.jpg?_nc_fx=ftpe7-3&_nc_cat=0&oh=c148736b5a0996f8406d85fada463570&oe=5C25CA17");
                        //            BtnCal.text = "功能選單";
                        //            BtnCal.title = "請選擇以下功能: ";
                        //            //加入動作
                        //            BtnCal.actions = actionCal;
                        //        }//上面文字

                        //        this.ReplyMessage(LineEvent.replyToken, BtnCal);

                        //        if (LineEvent.message.text.ToLower() == "查詢食物熱量" || LineEvent.message.text.ToLower() == "熱量有關QA")
                        //        {
                        //            if (LineEvent.message.text == "查詢食物熱量")
                        //            {
                        //                // var repmsg = "";
                        //                // if (LineEvent.message.type== "text") //收到文字
                        //                //{
                        //                this.ReplyMessage(LineEvent.replyToken, "您可以輸入以下這些: 雞肉 牛肉 豬肉 羊肉 蝦肉 魚肉 白飯 雞蛋 白吐司 麵 番薯 馬鈴薯 起司 香蕉 豆腐 奶油 牛奶 豆漿 油");

                        //                //建立 MsQnAMaker Client
                        //                var helper = new isRock.MsQnAMaker.Client(new Uri("CalQAEpoint"), "CalQAKey");
                        //                var QnAResponse = helper.GetResponse(LineEvent.message.text.Trim());
                        //                var ret = (from c in QnAResponse.answers
                        //                           orderby c.score descending
                        //                           select c
                        //                        ).Take(1);
                        //                var data = "雞肉 牛肉 豬肉 羊肉 蝦肉 魚肉 白飯 雞蛋 白吐司 麵 番薯 馬鈴薯 起司 香蕉 豆腐 奶油 牛奶 豆漿 油 ";
                        //                var responseText = UnknowAnswer + data;
                        //                if (ret.FirstOrDefault().score > 0)
                        //                    responseText = ret.FirstOrDefault().answer;
                        //                //回覆
                        //                this.ReplyMessage(LineEvent.replyToken, responseText);
                        //                //}//if
                        //            }//end of 查詢食物熱量


                        //            if (LineEvent.message.text == "熱量有關QA")
                        //            {
                        //                // var repmsg = "";
                        //                // if (LineEvent.type == "message") //收到文字
                        //                //{

                        //                this.ReplyMessage(LineEvent.replyToken, "您可以輸入以下這些: 成年人一天需要多少熱量?\n兒童一天需要多少熱量?\n青少年一天需要多少熱量? \n基礎代謝\n");

                        //                //建立 MsQnAMaker Client
                        //                var helper = new isRock.MsQnAMaker.Client(new Uri(CalQAEpoint), CalQAKey);
                        //                var QnAResponse = helper.GetResponse(LineEvent.message.text.Trim());
                        //                var ret = (from c in QnAResponse.answers
                        //                           orderby c.score descending
                        //                           select c
                        //                        ).Take(1);
                        //                var data = "成年人一天需要多少熱量?\n兒童一天需要多少熱量?\n青少年一天需要多少熱量? \n基礎代謝\n";
                        //                var responseText = UnknowAnswer + data;
                        //                if (ret.FirstOrDefault().score > 0)
                        //                    responseText = ret.FirstOrDefault().answer;
                        //                //回覆
                        //                this.ReplyMessage(LineEvent.replyToken, responseText);
                        //                //}//if lineevent
                        //            }//熱量有關QA
                        //        }//end of LineEvent.message.text.ToLower() == "查詢食物熱量" || LineEvent.message.text.ToLower() == "熱量有關QA"
                        //    }//end of 關於熱量

                        //    #endregion

                        //    #region 代謝率
                        //    if (LineEvent.message.text == "代謝率換算")
                        //    {


                        //        // 定義資訊收集者 list
                        //        isRock.LineBot.Conversation.InformationCollector<LeaveRequest> CIC =
                        //            new isRock.LineBot.Conversation.InformationCollector<LeaveRequest>(channelAccessToken);
                        //        LeaveRequest lr = new LeaveRequest();

                        //        this.ReplyMessage(LineEvent.replyToken, "只要說 : '計算' 就會開始計算基礎代謝率");
                        //        //取得 http post RawData Json
                        //        string postData = Request.Content.ReadAsStringAsync().Result;
                        //        //剖析 Json
                        //        var reMessage = isRock.LineBot.Utility.Parsing(postData);

                        //        //定義類別
                        //        ProcessResult<LeaveRequest> result;
                        //        //回復
                        //        var responseMsg = "";

                        //        if (reMessage.events[0].message.text == "計算")
                        //        {

                        //            result = CIC.Process(reMessage.events[0], true);
                        //            responseMsg = "開始計算\n";

                        //        }//計算代謝率

                        //        else { result = CIC.Process(reMessage.events[0]); }
                        //        //處理 CIC 處理結果
                        //        switch (result.ProcessResultStatus)
                        //        {
                        //            case ProcessResultStatus.Processed:
                        //                //取得候選訊息發送
                        //                responseMsg += result.ResponseMessageCandidate;
                        //                break;

                        //            case ProcessResultStatus.Done:
                        //                responseMsg += result.ResponseMessageCandidate;
                        //                responseMsg += $"蒐集到的資料有...\n";
                        //                double bmi = (lr.Hight) / 100 / Math.Pow(lr.Weight, 2);
                        //                responseMsg += $" Newtonsoft.Json.JsonConvert.SerializeObject(result.ConversationState.ConversationEntity)\n";
                        //                responseMsg += $"BMI為{bmi}";
                        //                break;
                        //            //case ProcessResultStatus.Pass:
                        //            //    responseMsg = $"你說的 '{ReceivedMessage.events[0].message.text}' 我看不懂,如果想要請假,請跟我說 : 『我要請假』";
                        //            //    break;
                        //            case ProcessResultStatus.Exception:
                        //                //取得候選訊息發送
                        //                responseMsg += result.ResponseMessageCandidate;
                        //                break;
                        //            case ProcessResultStatus.Break:
                        //                //取得候選訊息發送
                        //                responseMsg += result.ResponseMessageCandidate;
                        //                break;
                        //            case ProcessResultStatus.InputDataFitError:
                        //                responseMsg += "\n資料型態不合\n";
                        //                responseMsg += result.ResponseMessageCandidate;
                        //                break;
                        //            default:
                        //                //取得候選訊息發送
                        //                responseMsg += result.ResponseMessageCandidate;
                        //                break;

                        //        }

                        //    }//end of 代謝率換算
                        //    #endregion

                        //    #region 疾病查詢
                        //    if (LineEvent.message.text == "疾病查詢")
                        //    {
                        //        var actions_Sick = new List<isRock.LineBot.TemplateActionBase>();
                        //        actions_Sick.Add(new isRock.LineBot.MessageAction() { label = "疾病症狀查詢", text = "疾病症狀查詢" });
                        //        actions_Sick.Add(new isRock.LineBot.MessageAction() { label = "疾病的分類", text = "疾病的分類" });


                        //        var BtnTemplateMsg_Sick = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                        //        {

                        //            //----功能選擇 文字
                        //            BtnTemplateMsg_Sick.thumbnailImageUrl = new Uri("https://scontent.ftpe7-3.fna.fbcdn.net/v/t1.0-9/40912906_265044184335154_3090929470048043008_n.jpg?_nc_fx=ftpe7-3&_nc_cat=0&oh=480ce3da7f50cd926a57678c636ea6a0&oe=5C3A5C69");//照片
                        //            BtnTemplateMsg_Sick.text = "查詢";
                        //            BtnTemplateMsg_Sick.title = "請選以下選項";
                        //            //add action
                        //            BtnTemplateMsg_Sick.actions = actions_Sick;
                        //        };

                        //        this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Sick);
                        //        if (LineEvent.message.text.ToLower() == "疾病症狀查詢" || LineEvent.message.text.ToLower() == "疾病的分類")
                        //        {

                        //        }// end of LineEvent.message.text.ToLower()== "疾病症狀查詢" || LineEvent.message.text.ToLower() == "疾病的分類"


                        //    }//end of 疾病查詢

                        //    #endregion

                        //    #region 毒品

                        //    if (LineEvent.message.text == "認識毒品")
                        //    {

                        //        /* 建立TemplateMsg
                        //         *選擇後 進入選項底下
                        //         *
                        //         *
                        //         *
                        //         */

                        //        var actions_Drugs = new List<isRock.LineBot.TemplateActionBase>();
                        //        actions_Drugs.Add(new isRock.LineBot.MessageAction() { label = "一級毒品", text = "一級毒品" });
                        //        actions_Drugs.Add(new isRock.LineBot.MessageAction() { label = "二級毒品", text = "二級毒品" });
                        //        actions_Drugs.Add(new isRock.LineBot.MessageAction() { label = "三級 & 四級毒品", text = "三級 & 四級毒品" });

                        //        var BtnTemplateMsg_Drugs = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                        //        {

                        //            //----功能選擇 文字
                        //            BtnTemplateMsg_Drugs.thumbnailImageUrl = new Uri("https://i.screenshot.net/0gq8bx1");//照片
                        //            BtnTemplateMsg_Drugs.text = "認識毒品/藥物";
                        //            BtnTemplateMsg_Drugs.title = "請選以下選項";
                        //            //add action
                        //            BtnTemplateMsg_Drugs.actions = actions_Drugs;
                        //        };
                        //        this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs);


                        //        //---------drugs

                        //        if (LineEvent.message.text.ToLower() == "一級毒品" || LineEvent.message.text.ToLower() == "二級毒品" || LineEvent.message.text.ToLower() == "三級 & 四級毒品")
                        //        {

                        //            if (LineEvent.message.text == "一級毒品")
                        //            {
                        //                //TemplateMsg
                        //                var actions_Drugs1 = new List<isRock.LineBot.TemplateActionBase>();
                        //                actions_Drugs1.Add(new isRock.LineBot.MessageAction() { label = "古柯鹼", text = "古柯鹼" });
                        //                actions_Drugs1.Add(new isRock.LineBot.MessageAction() { label = "海洛因", text = "海洛因" });
                        //                actions_Drugs1.Add(new isRock.LineBot.MessageAction() { label = "嗎啡", text = "嗎啡" });
                        //                actions_Drugs1.Add(new isRock.LineBot.MessageAction() { label = "鴉片", text = "鴉片" });


                        //                var BtnTemplateMsg_Drugs1 = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                        //                {

                        //                    //----功能選擇 文字
                        //                    BtnTemplateMsg_Drugs1.thumbnailImageUrl = new Uri("https://i.screenshot.net/pzertmn");//照片
                        //                    BtnTemplateMsg_Drugs1.text = "一級毒品";
                        //                    BtnTemplateMsg_Drugs1.title = "包含:";
                        //                    //add action
                        //                    BtnTemplateMsg_Drugs1.actions = actions_Drugs1;
                        //                };
                        //                this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs1);

                        //                if (LineEvent.message.text.ToLower() == "古柯鹼" || LineEvent.message.text.ToLower() == "海洛因" || LineEvent.message.text.ToLower() == "嗎啡" || LineEvent.message.text.ToLower() == "鴉片")
                        //                {
                        //                    if (LineEvent.message.text == "古柯鹼") { this.ReplyMessage(LineEvent.replyToken, new Uri("https://scontent.ftpe7-4.fna.fbcdn.net/v/t1.0-9/40784055_264535537719352_25188119175233536_n.jpg?_nc_cat=107&oh=f070a3ae0e0bb933a21c4000bac6c676&oe=5C53343D")); }
                        //                    if (LineEvent.message.text == "海洛因") { }
                        //                    if (LineEvent.message.text == "嗎啡") { }
                        //                    if (LineEvent.message.text == "鴉片") { }
                        //                }//LineEvent.message.text.ToLower() == "古柯鹼" || LineEvent.message.text.ToLower() == "海洛因" || LineEvent.message.text.ToLower() == "嗎啡" || LineEvent.message.text.ToLower() == "鴉片"



                        //            }//end of 一級毒品

                        //            if (LineEvent.message.text.ToLower() == "二級毒品")
                        //            {
                        //                //TemplateMsg
                        //                var actions_Drugs2 = new List<isRock.LineBot.TemplateActionBase>();
                        //                actions_Drugs2.Add(new isRock.LineBot.MessageAction() { label = "大麻", text = "大麻" });
                        //                actions_Drugs2.Add(new isRock.LineBot.MessageAction() { label = "安非他命", text = "安非他命" });
                        //                actions_Drugs2.Add(new isRock.LineBot.MessageAction() { label = "搖頭丸", text = "搖頭丸" });
                        //                actions_Drugs2.Add(new isRock.LineBot.MessageAction() { label = "魔菇", text = "魔菇" });


                        //                var BtnTemplateMsg_Drugs2 = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                        //                {

                        //                    //----功能選擇 文字
                        //                    BtnTemplateMsg_Drugs2.thumbnailImageUrl = new Uri("https://i.screenshot.net/pzertmn");//照片
                        //                    BtnTemplateMsg_Drugs2.text = "二級毒品";
                        //                    BtnTemplateMsg_Drugs2.title = "包含:";
                        //                    //add action
                        //                    BtnTemplateMsg_Drugs2.actions = actions_Drugs2;
                        //                };

                        //                this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs2);
                        //            }//end of 二級毒品

                        //            if (LineEvent.message.text.ToLower() == "三級 & 四級毒品")
                        //            {
                        //                //TemplateMsg
                        //                var actions_Drugs34 = new List<isRock.LineBot.TemplateActionBase>();
                        //                actions_Drugs34.Add(new isRock.LineBot.MessageAction() { label = "3級 K他命(氯胺酮)", text = "K他命(氯胺酮)" });
                        //                actions_Drugs34.Add(new isRock.LineBot.MessageAction() { label = "3級 FM2", text = "FM2" });
                        //                actions_Drugs34.Add(new isRock.LineBot.MessageAction() { label = "4級 蝴蝶片", text = "蝴蝶片" });


                        //                var BtnTemplateMsg_Drugs34 = new isRock.LineBot.ButtonsTemplate(); // 一開始的功能選擇
                        //                {

                        //                    //----功能選擇 文字
                        //                    BtnTemplateMsg_Drugs34.thumbnailImageUrl = new Uri("https://i.screenshot.net/pzertmn");//照片
                        //                    BtnTemplateMsg_Drugs34.text = "三級 & 四級毒品";
                        //                    BtnTemplateMsg_Drugs34.title = "包含:";
                        //                    //add action
                        //                    BtnTemplateMsg_Drugs34.actions = actions_Drugs34;
                        //                };

                        //                this.ReplyMessage(LineEvent.replyToken, BtnTemplateMsg_Drugs34);

                        //            }//end of 三四級毒品



                        //        }//end of 1234 drug tolower


                        //    }//end of 認識毒品

                        //    #endregion


                        //    //}// (LineEvent.message.text.ToLower() == "關於熱量" || LineEvent.message.text.ToLower() == "代謝率計算" || LineEvent.message.text.ToLower() == "疾病查詢" || LineEvent.message.text.ToLower() == "認識毒品
                        #endregion
                    }// end of message type is text

                    if (LineEvent.message.type == "sticker")
                    {
                        this.ReplyMessage(LineEvent.replyToken, 1, 2);
                    }//收到貼圖


                    if (LineEvent.message.type == "location")
                    {
                        this.ReplyMessage(LineEvent.replyToken, $"你的位置在\n{LineEvent.message.latitude}, {LineEvent.message.longitude}");
                    } //收到位置
                }     //end of  收到訊息(message)

                #endregion

                //response OK
                return(Ok());
            }//end of try
            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }//end of public post
Пример #25
0
        public IHttpActionResult POST()
        {
            try
            {
                //設定ChannelAccessToken(或抓取Web.Config)
                this.ChannelAccessToken = channelAccessToken;
                //取得Line Event(範例,只取第一個)
                var LineEvent          = this.ReceivedMessage.events.FirstOrDefault(); //JSON轉成物件
                isRock.LineBot.Bot bot = new isRock.LineBot.Bot("0A/dwcLNYoarvmtMAuIiXl745SBEYWOq1FZtg0feMY5e+bUIBVG5SOh8V7oUjlE8xA3etOVliIFz7NZNF1ZXZMt/2dn/MU6+p+YmrOboCtW0JkoSmiCVZebxOc3dyKljZaVV9XWfHvcBOq4wSki8OAdB04t89/1O/w1cDnyilFU=");
                //配合Line verify
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                //回覆訊息

                string lineID     = ReceivedMessage.events.FirstOrDefault().source.userId;
                var    userid     = bot.GetUserInfo(lineID).displayName;
                var    model      = new Products();
                var    service    = new OrdersService();
                var    repository = new OrdersRepository();

                if (LineEvent.type == "message")
                {
                    if (LineEvent.message.type == "text") //收到文字
                    {
                        if (LineEvent.message.text.ToLower() == "銷售額多少")
                        {
                            //建立actions, 作為ButtonTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "年", text = "年"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "半年", text = "半年"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "月", text = "月"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "日", text = "日"
                            });
                            var ButtonTempalteMsg = new isRock.LineBot.ButtonsTemplate()
                            {
                                title             = "請選擇",
                                text              = "以下選項",
                                altText           = "請在手機上檢視",
                                thumbnailImageUrl = new Uri("https://i.imgur.com/waYRM42.jpg"),
                                actions           = actions
                            };
                            this.ReplyMessage(LineEvent.replyToken, ButtonTempalteMsg);
                        }
                        if (LineEvent.message.text.ToLower() == "年")
                        {
                            DateTime from = new DateTime(2018, 1, 1);
                            DateTime to   = new DateTime(2018, 12, 31);
                            var      year = repository.GetByOrder_Date(from, to);
                            this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total).ToString().ToLower() + "元");
                        }
                        if (LineEvent.message.text.ToLower() == "半年")
                        {
                            DateTime from = new DateTime(2018, 1, 1);
                            DateTime to   = new DateTime(2018, 6, 30);
                            var      year = repository.GetByOrder_Date(from, to);
                            this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total) + "元");
                        }
                        if (LineEvent.message.text.ToLower() == "月")
                        {
                            DateTime from = new DateTime(2018, 6, 1);
                            DateTime to   = new DateTime(2018, 6, 30);
                            var      year = repository.GetByOrder_Date(from, to);
                            this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total).ToString() + "元");
                        }
                        if (LineEvent.message.text.ToLower() == "日")
                        {
                            DateTime from = new DateTime(2018, 6, 20, 0, 0, 0);
                            DateTime to   = new DateTime(2018, 6, 20, 23, 59, 59);
                            var      year = repository.GetByOrder_Date(from, to);
                            this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total).ToString() + "元");
                        }
                        if (LineEvent.message.text.ToLower() == "商品")
                        {
                            //建立actions, 作為ConfirmTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "最熱銷", text = "最熱銷"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "最滯銷", text = "最滯銷"
                            });
                            var ConfirmTemplate = new isRock.LineBot.ConfirmTemplate()
                            {
                                text    = "請選擇",
                                altText = "請在手機上檢視",
                                actions = actions
                            };
                            this.ReplyMessage(LineEvent.replyToken, ConfirmTemplate);
                        }
                        if (LineEvent.message.text == "最熱銷" || LineEvent.message.text == "最滯銷")
                        {
                            var a3 = "";
                            var b  = "";
                            var c  = "";
                            //    var product = repository.GetProductTop9();
                            int a9;
                            if (LineEvent.message.text == "最熱銷")
                            {
                                b = "最熱銷";
                                c = "DESC";
                            }
                            else
                            {
                                b = "最滯銷";
                                c = "ASC";
                            }
                            var product = repository.GetProductTop9(c);
                            if (LineEvent.message.text == "最熱銷")
                            {
                                a9 = product.Max(x => x.count);
                            }
                            else
                            {
                                a9 = product.Min(x => x.count);
                            }

                            foreach (var i in product)
                            {
                                if (i.count == a9)
                                {
                                    a3 += i.Product_Name.ToString() + " \n";
                                }
                            }

                            this.ReplyMessage(LineEvent.replyToken, $"{b}  :  \n{a3}");
                        }
                        if (LineEvent.message.text == "庫存少於的商品有哪些")
                        {
                            //建立actions, 作為ButtonTemplate的用戶回覆行為
                            var actions = new List <isRock.LineBot.TemplateActionBase>();
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "5項", text = "5"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "10項", text = "10"
                            });
                            actions.Add(new isRock.LineBot.MessageAction()
                            {
                                label = "15項", text = "15"
                            });
                            var ButtonTempalteMsg = new isRock.LineBot.ButtonsTemplate()
                            {
                                title             = "請選擇",
                                text              = "以下選項",
                                altText           = "請在手機上檢視",
                                thumbnailImageUrl = new Uri("https://i.imgur.com/waYRM42.jpg"),
                                actions           = actions
                            };
                            this.ReplyMessage(LineEvent.replyToken, ButtonTempalteMsg);
                        }
                        //   if (LineEvent.message.text == "5" || LineEvent.message.text == "10" || LineEvent.message.text == "15")
                        int s;
                        if (int.TryParse(LineEvent.message.text, out s))
                        {
                            // var s = int.Parse(LineEvent.message.text);
                            var product = repository.GetStock(s);
                            var a1      = "";
                            foreach (var i in product)
                            {
                                a1 += $"商品編號 : {i.Product_ID}  商品名稱 :  {i.Product_Name} 尺寸 : {i.Size}  顏色 : {i.Color} 數量 : {i.Quantity}  , \n";
                            }
                            try
                            {
                                this.ReplyMessage(LineEvent.replyToken, $"商品庫存  :  \n{a1}");
                            }
                            catch
                            {
                                this.ReplyMessage(LineEvent.replyToken, $"商品庫存  :  只能在0~15內");
                            }
                        }
                    }
                    if (LineEvent.message.type == "sticker")
                    {
                        this.ReplyMessage(LineEvent.replyToken, 1, 2);
                    }
                    if (LineEvent.message.type == "location")
                    {
                        this.ReplyMessage(LineEvent.replyToken, $"你的位置在\n{LineEvent.message.latitude}, {LineEvent.message.longitude}");
                    }
                    if (LineEvent.message.type == "image")
                    {
                        //取得圖片Bytes
                        var bytes = this.GetUserUploadedContent(LineEvent.message.id);

                        var guid     = Guid.NewGuid().ToString();
                        var filename = $"{guid}.png";
                        var path     = System.Web.Hosting.HostingEnvironment.MapPath("~/temp/");
                        System.IO.File.WriteAllBytes(path + filename, bytes);
                        //取得base URL
                        var baseUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority);
                        //組出外部可以讀取的檔名
                        var url = $"{baseUrl}/temp/{filename}";
                        this.ReplyMessage(LineEvent.replyToken, $"你的圖片位於\n {url}");
                    }
                }
                if (LineEvent.type == "postback")
                {
                    var data = LineEvent.postback.data;
                    var date = LineEvent.postback.Params.date;
                    this.ReplyMessage(LineEvent.replyToken, $"你的postback資料為:{data}\n選擇結果:{date}");
                }
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                //如果發生錯誤,傳訊息給Admin
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }