Добрый день, создаю что-то типа бота для вк. Бот должен отвечать на сообщение текстом, содержащимся в сообщении. Вот мой код:
while (true) //бесконечный цикл, в котором проверяем обновления
{
try
{
var poll = api.Groups.GetBotsLongPollHistory(
new BotsLongPollHistoryParams()
{ Server = s.Server, Ts = s.Ts, Key = s.Key, Wait = 1 });
if (poll?.Updates == null) continue; //если обновлений нет, ждём
foreach (var a in poll.Updates) //если есть, ищем среди них сообщение
{
if (a.Type == GroupUpdateType.MessageNew)
{
Console.WriteLine(a.Message.Body); //выводим его в консоль
api.Messages.Send(new MessagesSendParams //и отправляем текст этого сообщения пользователю
{
PeerId = a.Message.UserId,
RandomId = new Random().Next(),
Message = a.Message.Body
});
WriteLine("Sended");
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
При таком раскладе появляется ошибка "VkNet.Exception.ParameterMissingOrInvalidException: "One of the parameters specified was missing or invalid: you should specify peer id, user id, domain, chat_id or user_ids param". Меняю Id на свой, текст меняю на обычную строку, и всё работает как надо. Оставляю текст, меняю PeerId на a.Message.UserId, та же самая ошибка. Меняю PeerId на свой, а Message на a.Message.Body, ошибка "One of the parameters specified missing or invalid: message is empty or invalid". Так в чём же всё-таки ошибка? Перед отправкой сообщения вывожу UserId, пустая строка, значит, null. Вывожу Message.Body - тоже null. То есть, сообщение приходит, но id и текст null. Почему так происходит и как это исправить?