using BackendWorkerService.Services.Interface; using Microsoft. Extensions.Logging; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; namespace BackendWorkerService.Services.Implement { class SendLineNotifyService: ISendLineNotifyService { private readonly ILogger logger; public SendLineNotifyService(ILogger logger) { this.logger = logger; } public bool Send(int id, string lineToken, string message) { try { logger.LogInformation("【SendLineNotifyService】【Line Notify開始發送】[任務編號]:{0}", id); HttpWebRequest Postrequest = (HttpWebRequest)WebRequest.Create("https://notify-api.line.me/api/notify?message=" + message); Postrequest.Method = "POST"; Postrequest.Headers.Add("Authorization", "Bearer " + lineToken); Postrequest.PreAuthenticate = true; HttpWebResponse response = (HttpWebResponse)Postrequest.GetResponse(); var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); var final = JObject.Parse(responseString); var get = final["status"].ToString(); if (get != "200") { logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[任務編號]:{0}", id); logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[失敗內容]:{0}", responseString); return false; } logger.LogInformation("【SendLineNotifyService】【Line Notify發送成功】[任務編號]:{0}", id); return true; } catch (Exception exception) { logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[任務編號]:{0}", id); logger.LogError("【SendLineNotifyService】【Line Notify發送失敗】[Exception]:{0}", exception.ToString()); throw; //return false; } } } }