[Route("api/[controller]")]
[ApiController]
public class CallbackController : ControllerBase
{
/// <summary>
/// Конфигурация приложения
/// </summary>
private readonly IConfiguration _configuration;
private readonly IVkApi _vkApi;
public CallbackController (IConfiguration configuration, IVkApi vkApi)
{
_configuration = configuration;
_vkApi = vkApi;
}
[HttpPost]
public IActionResult Callback ([FromBody] VkEvent vkEvent)
{
// Проверяем, что находится в поле "type"
switch (vkEvent.Type)
{
// Если это уведомление для подтверждения адреса
case "confirmation":
// Отправляем строку для подтверждения
return Ok(_configuration["Config:Confirmation"]);
case "message_new":
{
// Десериализация
var msg = Message.FromJson(new VkResponse(vkEvent.Object));
// Отправим в ответ полученный от пользователя текст
_vkApi.Messages.Send(new MessagesSendParams
{
RandomId = new DateTime().Millisecond,
PeerId = msg.PeerId.Value,
Message = string.Format("Vk ChatBot Test App\nYour message: {0}", msg.Text)
});
// Возвращаем "ok" серверу Callback API
return Ok("ok");
}
}
// Возвращаем "ok" серверу Callback API
return Ok("ok");
}
[HttpGet]
public IActionResult GetActionResult()
{
var jsonmsg = @"{""type"":""message_new"",""object"":{""date"":1572209977,""from_id"":19435491,""id"":40,""out"":0,""peer_id"":19435491,""text"":""Hello"",""conversation_message_id"":9,""fwd_messages"":[],""important"":false,""random_id"":0,""attachments"":[],""is_hidden"":false},""group_id"":172942884}";
var vkEvent = JsonConvert.DeserializeObject<VkEvent>(jsonmsg);
var msg = Message.FromJson(new VkResponse(vkEvent.Object));
// Отправим в ответ полученный от пользователя текст
_vkApi.Messages.Send(new MessagesSendParams
{
RandomId = new DateTime().Millisecond,
PeerId = msg.PeerId.Value,
Message = msg.Text
});
return Ok(msg.Text);
}
}