Open huyjack178 opened 6 years ago
Check this out. https://github.com/kenakamu/LINEChannelConnector/
I got same issue, but i rewrite the WebhookRequestMessageHelper
by using HttpContext
.
Some sample to get the content:
using(var reader = new StreamReader(httpContext.Request.Body))
{
var content = await reader.ReadToEndAsync();
...
...
dynamic json = JsonConvert.DeserializeObject(content);
}
Using seanmars' code to create a method like the one below, I was able to create an HttpRequestMessage that the "GetWebhookEventsAsync" extension method can use successfully.
Note that the "X-Line Signature" key must be included in the header.
private async Task<HttpRequestMessage> GetLineRequest()
{
using (var reader = new StreamReader(HttpContext.Request.Body))
{
var content = await reader.ReadToEndAsync();
var reqMessage = new HttpRequestMessage
{
RequestUri = new Uri("https://localhost:5001/callback"),
Content = new StringContent(content, Encoding.UTF8, "application/json")
};
var signature = HttpContext.Request.Headers.Where(x => x.Key == "X-Line-Signature").First();
reqMessage.Headers.Add(signature.Key, signature.Value.ToString());
return reqMessage;
}
}
Currently I am converting LINE with bot framework application to ASP.NET Core, implement the same controller
[HttpPost] public async Task<ActionResult> Post([FromBody] HttpRequestMessage request)
But when I test webhook, HttpRequestMessage does not have any data. Can anyone help?