public async Task ReplyMessageAsync(string replyToken, IList <IMessage> messages) { using (var httpClient = new HttpClient()) { using (var request = new HttpRequestMessage(new HttpMethod("POST"), $"{lineMessageReplyApiBaseUrl}")) { request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {accessToken}"); LineMessageReq req = new LineMessageReq(); req.ReplyToken = replyToken; foreach (var message in messages) { req.Messages.Add(message); } var postJson = JsonConvert.SerializeObject(req, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } }); request.Content = new StringContent(postJson); request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); var response = await httpClient.SendAsync(request); } } }
public async Task ReplyMessageByJsonAsync(string replyToken, string jsonString) { using (var httpClient = new HttpClient()) { using (var request = new HttpRequestMessage(new HttpMethod("POST"), $"{lineMessageReplyApiBaseUrl}")) { request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {accessToken}"); LineMessageReq req = new LineMessageReq(); req.ReplyToken = replyToken; req.Messages.Add(new FlexMessage() { Contents = JsonConvert.DeserializeObject(jsonString) }); var postJson = JsonConvert.SerializeObject(req, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() }, Formatting = Formatting.Indented }).Replace("\"", @""""); request.Content = new StringContent(postJson); request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); var response = await httpClient.SendAsync(request); var result = await response.Content.ReadAsStringAsync(); } } }
private async Task MakeReplyRequestToLineApi(LineMessageReq req) { var postJson = JsonConvert.SerializeObject(req, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented, ContractResolver = new CustomPropertyNamesContractResolver() { Case = IdentifierCase.Camel, PreserveUnderscores = false, }, Converters = { new StringEnumConverter(typeof(SnakeCaseNamingStrategy)) } }).Replace("\"", @""""); using var request = new HttpRequestMessage(new HttpMethod("POST"), $"{LineMessageReplyApiBaseUrl}"); request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {_accessToken}"); request.Content = new StringContent(postJson); request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); var response = await _httpClient.SendAsync(request); var content = await response.Content.ReadAsStringAsync(); if (response.StatusCode == HttpStatusCode.OK) { return; } throw new Exception(content); }
public async Task ReplyMessageAsync(string replyToken, IList <IRequestMessage> messages) { var req = new LineMessageReq { ReplyToken = replyToken }; foreach (var message in messages) { switch (message) { case IMessage: req.Messages.Add(message); break; case ITemplate template: req.Messages.Add(new TemplateMessageBase() { Template = template }); break; case IFlex template: req.Messages.Add(template); break; } } await MakeReplyRequestToLineApi(req); }
public async Task ReplyMessageAsync(string replyToken, params string[] messages) { using var request = new HttpRequestMessage(new HttpMethod("POST"), $"{LineMessageReplyApiBaseUrl}"); request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {_accessToken}"); var req = new LineMessageReq { ReplyToken = replyToken }; foreach (var message in messages) { req.Messages.Add(new TextMessage(message)); } var postJson = JsonConvert.SerializeObject(req, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() }, Formatting = Formatting.Indented }); request.Content = new StringContent(postJson); request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); var response = await _httpClient.SendAsync(request); }
public async Task ReplyMessageByJsonAsync(string replyToken, string jsonString) { var req = new LineMessageReq { ReplyToken = replyToken }; req.Messages.Add(new FlexMessage(jsonString)); await MakeReplyRequestToLineApi(req); }