– 加上程式如下 – public class LineReceivedMessage { public List<Event> events; public LineReceivedMessage() { events = new List<Event>(); } } public class Event { public string type { get; set; } public Source source { get; set; } public EventMessage message { get; set; } public string replyToken { get; set; } public Event() { source = new Source(); message = new EventMessage(); } } public class Source { public string userId { get; set; } } public class EventMessage { public string id { get; set; } public string type { get; set; } public string text { get; set; } }
– 修改POST函數如下
public async Task<IActionResult> Post(dynamic request) { string x = Convert.ToString(request); _log.LogInformation(x); var channelAccessToken = “你的TOKEN”; var receivedMessage = JsonConvert.DeserializeObject<LineReceivedMessage>(x); // 收到訊息解成物件 string userid = receivedMessage.events[0].source.userId; // 取得使用者ID string message = receivedMessage.events[0].message.text; // 取得文字訊息 var replyToken = receivedMessage.events[0].replyToken; // 取得回應TOKEN var replyMessage = new { replyToken = replyToken, messages = new object[] { new { type = “text”, text = message } } }; string s = JsonConvert.SerializeObject(replyMessage); // 轉為JSON字串 byte[] bytes = Encoding.UTF8.GetBytes(s); WebClient webClient = new WebClient(); webClient.Headers.Clear(); webClient.Headers.Add(“Content-Type”, “application/json”); webClient.Headers.Add(“Authorization”, “Bearer ” + channelAccessToken); webClient.UploadData(“https://api.line.me/v2/bot/message/reply”, bytes); return Ok(request); }