VK API ошибка. Unhandled exception. VkNet.Exception.ParameterMissingOrInvalidException: One of the parameters specified was missing or invalid
Бот должен запускаться, и после слова "привет" должен отобразить на клавиатуре кнопку "Матем", после нажатия на которую, выводить соответсвующее предложение. Однако бот вообще не запускается. Вот полныц текст ошибки:
Unhandled exception. VkNet.Exception.ParameterMissingOrInvalidException: One of the parameters specified was missing or invalid: message_ids is undefined
at VkNet.Utils.VkErrors.IfErrorThrowException(String json)
at VkNet.VkApi.Invoke(String methodName, IDictionary`2 parameters, Boolean skipAuthorization)
at VkNet.VkApi.CallBase(String methodName, VkParameters parameters, Boolean skipAuthorization)
at VkNet.VkApi.Call(String methodName, VkParameters parameters, Boolean skipAuthorization)
at VkNet.Categories.MessagesCategory.MarkAsRead(String peerId, Nullable`1 startMessageId, Nullable`1 groupId, Nullable`1 markConversationAsRead)
at VK1.Programm.GetMessage() in C:\Users\boris\RiderProjects\VK1\VK1\Program.cs:line 106
at VK1.Programm.Receive() in C:\Users\boris\RiderProjects\VK1\VK1\Program.cs:line 31
at VK1.Programm.Main(String[] args) in C:\Users\boris\RiderProjects\VK1\VK1\Program.cs:line 25
Вот исходник с неправильным токеном:
using System;
using System.Xml.Schema;
using VkNet;
using VkNet.Model;
using VkNet.Model.RequestParams;
using VkNet.Enums.Filters;
using VkNet.Enums.SafetyEnums;
using VkNet.Model.Keyboard;
namespace VK1
{
class Programm
{
public static VkApi vk = new VkApi();
static void Main(string[] args)
{
vk.Authorize(new ApiAuthParams
{
AccessToken = "vk1.a.PS7W5IehyqOlqBVBwssRfTAm1f0fRS3wDAp7OUs7x3tNSawuCh5AN4CZ-jhX7X4X01UH_jqa5EwXm_ChRkI-Znb4_-5FAqcMWiC20JgxdpAkKS4q8Rna3-7IPAQ6SyABeMrhe06Mi9Pn-npcyygrqKbIfj5sjKe_29EkWvfLpbK_U0ea2krm9v3eYbuKkt4",
Settings = Settings.All
});
while (true)
{
Thread.Sleep(50);
Receive();
}
}
public static bool Receive()
{
object[] minfo = GetMessage();
if (minfo[0] == null)
{
return false;
}
long? userid = Convert.ToUInt32(minfo[2]);
KeyboardBuilder key = new KeyboardBuilder();
string code = "";
if (minfo[1].ToString() != "")
{
code = minfo[1].ToString();
}
else
{
code = minfo[0].ToString();
}
switch (code.ToLower())
{
case "привет":
key.AddButton("Матем", "math", KeyboardButtonColor.Positive);
key.AddLine();
break;
case "матем":
SendMessage("Дз по матеше", userid, null);
break;
default:
SendMessage("К сожаленю я не знаю это команды", userid, null);
break;
}
return true;
}
public static void SendMessage(string message, long? userid, MessageKeyboard keyboard)
{
vk.Messages.Send(new MessagesSendParams
{
Message = message,
UserId = userid,
RandomId = new Random().Next(),
Keyboard = keyboard
});
}
public static object[] GetMessage()
{
string message = "";
string keyname = "";
long? userid = 0;
var messages = vk.Messages.GetDialogs(new MessagesDialogsGetParams
{
Count = 10, Unread = true
});
if (messages.Messages.Count != 0)
{
if (messages.Messages[0].Body != null && messages.Messages[0].Body.ToString() != "")
{
message = messages.Messages[0].Body.ToString();
}
else
{
message = "";
}
if (messages.Messages[0].Payload != null)
{
keyname = messages.Messages[0].Payload.ToString();
keyname = keyname.Split("{\"button\":\"")[1];
keyname = keyname.Split("\"}")[0];
}
else
{
keyname = "";
}
userid = messages.Messages[0].UserId.Value;
vk.Messages.MarkAsRead(userid.ToString());
return new object[] { message, keyname, userid };
}
else
{
return new object[] { null, null, null };
}
}
}
}
Скажите пожалуйста, что эти ошибки означают