private async Task <Result> PostRaw(string url, BotMessageResponse data) { var result = new Result(); using (var client = new HttpClient()) { try { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var json = JsonConvert.SerializeObject(data, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); result.Success = response.IsSuccessStatusCode; } catch (Exception ex) { result.ErrorMessage = ex.Message; _logger.LogError(ex, $"PostRaw failed {url}| data {data}"); } } return(result); }
public async Task <Result> SendMessage(string psId, MessageResponse message) { var entry = new BotMessageResponse { recipient = new BotUser { id = psId }, message = message }; var url = string.Format(Messages.FbSendMessageUrl, _configs.GraphApiUrl, _configs.AccessToken); return(await PostRaw(url, entry)); }
private void PrepareMessageWithQuickReply(string message, List <QuickReply> quickReplies, string facebook_id) { var msg = $"{message}\n id ({facebook_id})"; var response = new BotMessageResponse { recipient = new BotUser { id = facebook_id }, message = new MessageResponse { text = msg, quick_replies = quickReplies }, }; var json = JsonConvert.SerializeObject(response); PostRaw("https://graph.facebook.com/v3.0/me/messages?access_token=EAADSmRksBeEBAOHMfZBAEHPLIo6UXugelborcpSJIaIxIfUIxd2fQzM6ADwwLOqWdJzlg8pUNZCWPB5ZAgomk1zdtmOil7L1hlOu1HLilOUrReg6ZCwQmhukZBqYN0YZBOWENQcZAw7RYRCpoC6EnjyYiLisEe9izvGhq7VdJtSuBHPaKaN3BnI", json); }