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); }
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); }
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); }
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); }
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()); } }
/// <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); }
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); }
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()); } }
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()); } }
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()); } }
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()); } }
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()); } }
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()); } }
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); }
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()); } }
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()); } }
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()); } }
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
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()); } }