public async Task <HttpResponseMessage> Post([FromBody] string request) { // do some thing if (request != null) { string temp = request.ToString(); Event ev = new Event(); Message m = new Message(); m.Id = "325708"; m.Type = MessageType.Text; ev.Message = m; ev.ReplyToken = @"VC/sPEIz8O7WYo0THlaM5laorgw+GifJmN8cFR5eZ0seYxNsR3ZOVblQgOeI8xNaCOyTsUz2VsajbtAyt8hj7+NdP2/oYB+7eQ/FGnEAN/ICGCPj5nX36E848piCYi16BPkXlDR3N0CDiPnrfbpPcAdB04t89/1O/w1cDnyilFU="; LineMessageHandler handler1 = new LineMessageHandler(ev); //return new HttpResponseMessage(System.Net.HttpStatusCode.OK); await handler1.HandleTextMessage(); return(new HttpResponseMessage(System.Net.HttpStatusCode.OK)); } else { return(new HttpResponseMessage(System.Net.HttpStatusCode.NotAcceptable)); } }
/// <summary> /// POST: api/Messages /// Receive a message from a user and reply to it /// </summary> public async Task <HttpResponseMessage> Post() { //HttpRequestMessage request //if (!await VaridateSignature(request)) // return new HttpResponseMessage(HttpStatusCode.BadRequest); Activity activity = new Activity(); using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { activity = JsonConvert.DeserializeObject <Activity> (await reader.ReadToEndAsync()); } // Line may send multiple events in one message, so need to handle them all. foreach (Event lineEvent in activity.Events) { LineMessageHandler handler = new LineMessageHandler(lineEvent); Profile profile = await handler.GetProfile(lineEvent.Source.UserId); switch (lineEvent.Type) { case EventType.Beacon: await handler.HandleBeaconEvent(); break; case EventType.Follow: await handler.HandleFollowEvent(); break; case EventType.Join: await handler.HandleJoinEvent(); break; case EventType.Leave: await handler.HandleLeaveEvent(); break; case EventType.Message: Message message = JsonConvert.DeserializeObject <Message>(lineEvent.Message.ToString()); switch (message.Type) { case MessageType.Text: await handler.HandleTextMessage(); break; case MessageType.Audio: case MessageType.Image: case MessageType.Video: await handler.HandleMediaMessage(); break; case MessageType.Sticker: await handler.HandleStickerMessage(); break; case MessageType.Location: await handler.HandleLocationMessage(); break; } break; case EventType.Postback: await handler.HandlePostbackEvent(); break; case EventType.Unfollow: await handler.HandleUnfollowEvent(); break; } } return(new HttpResponseMessage(HttpStatusCode.OK)); }