Ошибка VK.NET The JSON value could not be converted to System.Collections.Generic.IEnumerable`1[Newtonsoft.Json.Linq.JToken]
Пытаюсь реализовать простой ответ бота на сообщение, при получении сообщения с сервера выдает ошибку:
HTTP/1.1 200 Connection established
HTTP/1.1 400 Bad Request
Transfer-Encoding: chunked
Content-Type: application/problem+json;charset=utf-8
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Set-Cookie:
Date: Fri, 08 Oct 2021 11:38:36 GMT
{
"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title":"One or more validation errors occurred.",
"status":400,
"traceId":"|51749231-41cb231bd26466a4.",
"errors":{
"$.object":["The JSON value could not be converted to System.Collections.Generic.IEnumerable`1[Newtonsoft.Json.Linq.JToken]. Path: $.object | LineNumber: 0 | BytePositionInLine: 41."]
}
}
[Serializable]
public class Updates
{
/// <summary>
/// Тип события
/// </summary>
[JsonProperty("type")]
public string Type { get; set; }
/// <summary>
/// Объект, инициировавший событие
/// Структура объекта зависит от типа уведомления
/// </summary>
[JsonProperty("object")]
public JObject Object { get; set; }
/// <summary>
/// ID сообщества, в котором произошло событие
/// </summary>
[JsonProperty("group_id")]
public long GroupId { get; set; }
/// <summary>
/// Секретный ключ. Передается с каждым уведомлением от сервера
/// </summary>
[JsonProperty("secret")]
public string Secret { get; set; }
}
контроллер:
[Route("api/[controller]")]
[ApiController]
public class CallbackController : ControllerBase
{
/// <summary>
/// Конфигурация приложения
/// </summary>
private readonly IConfiguration _configuration;
private readonly IVkApi _vkApi;
public CallbackController(IVkApi vkApi, IConfiguration configuration)
{
_vkApi = vkApi;
_configuration = configuration;
}
[HttpPost]
public IActionResult Callback([FromBody] Updates updates)
{
// Проверяем, что находится в поле "type"
switch (updates.Type)
{
// Если это уведомление для подтверждения адреса
case "confirmation":
// Отправляем строку для подтверждения
return Ok(_configuration["Config:Confirmation"]);
case "message_new":
{
// Десериализация
var msg = Message.FromJson(new VkResponse(updates.Object));
// Отправим в ответ полученный от пользователя текст
_vkApi.Messages.Send(new MessagesSendParams
{
RandomId = new DateTime().Millisecond,
PeerId = msg.PeerId.Value,
Message = msg.Text
});;
break;
}
}
// Возвращаем "ok" серверу Callback API
return Ok("ok");
}
}