public async Task <IHttpActionResult> Post() { try { //Get Message string postData = Request.Content.ReadAsStringAsync().Result; var RequestBody = isRock.LineBot.Utility.Parsing(postData); string Message = RequestBody.events[0].message.text; //取得LUIS的相關設定值 NLPInfo LUISInfo = db.GetNLPInfo("LineBotNLP"); //Send to Analysis Microsoft.Cognitive.LUIS.LuisClient lc = new Microsoft.Cognitive.LUIS.LuisClient(LUISInfo.appid, LUISInfo.appKey, true); var AnalysisResult = await lc.Predict(Message); //Get Reply Message string replyMessage = db.GetResult(AnalysisResult); //Response Message string ChannelAccessToken = db.GetBotToken("Line"); isRock.LineBot.Utility.ReplyMessage(RequestBody.events[0].replyToken, replyMessage, ChannelAccessToken); return(Ok()); } catch (Exception ex) { string errorMessage = string.Format("ErrorMessage:{0},ErrorStack:{1},InnerExcepton:", ex.Message, ex.StackTrace, ex.InnerException); db.InsertRequestLog(errorMessage); return(Ok(errorMessage)); } }
public async Task <IHttpActionResult> Post() { try { //Get Message string postData = Request.Content.ReadAsStringAsync().Result; db.InsertRequestLog(postData); var RequestBody = isRock.LineBot.Utility.Parsing(postData); string Message = RequestBody.events[0].message.text; string ChannelAccessToken = db.GetBotToken("Line"); //取得LUIS的相關設定值 NLPInfo LUISInfo = db.GetNLPInfo("LineBotNLP"); //Send to Analysis Microsoft.Cognitive.LUIS.LuisClient lc = new Microsoft.Cognitive.LUIS.LuisClient(LUISInfo.appid, LUISInfo.appKey, true); var AnalysisResult = await lc.Predict(Message); string replyMessage; //Get Reply Message bool isGreeting = db.GetResult(AnalysisResult, out replyMessage); if (isGreeting) { CarouselTemplate ct = LineRepository.GetButtonTemplateMessage("Carousel") as CarouselTemplate; var result = Utility.PushTemplateMessage(RequestBody.events[0].source.userId , ct , ChannelAccessToken); } else { //Response Message isRock.LineBot.Utility.ReplyMessage(RequestBody.events[0].replyToken, replyMessage, ChannelAccessToken); } return(Ok()); } catch (Exception ex) { string errorMessage = string.Format("ErrorMessage:{0},ErrorStack:{1},InnerExcepton:", ex.Message, ex.StackTrace, ex.InnerException); db.InsertRequestLog(errorMessage); return(Ok(errorMessage)); } }