Создал бота, теперь нужно сделать кнопки, для быстрых сообщений боту. Перерыл много источников, но ничего не нашёл. Помогите добавить кнопки для бота
утин, Может вместо тела сообщения а не вместо сообщения, а он его в нижний регистр тут же пытается загнать без проверки, я там ниже отписался куском кода
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VkNet; using VkNet.Model.RequestParams; using VkNet.Enums.Filters; using VkNet.Model; using VkNet.Enums.SafetyEnums; using VkNet.Abstractions; using VkNet.Model.Keyboard; using System.Threading; namespace zkz { internal class Program { public static VkApi api = new VkApi(); static void Main(string[] args) { api.Authorize(new ApiAuthParams() { AccessToken = "token" }); while (true) { WorkStatus(); KeyboardBuilder board = new KeyboardBuilder(isOneTime: false); var s = api.Groups.GetLongPollServer(id Группы); var poll = api.Groups.GetBotsLongPollHistory(new BotsLongPollHistoryParams() { Server = s.Server, Ts = s.Ts, Key = s.Key, Wait = 25 }); if (poll?.Updates == null) { continue; } foreach(var a in poll.Updates) { if (a.Type == GroupUpdateType.MessageNew) { string userMessage = a.Message.Body.ToLower(); Console.WriteLine(userMessage); long? userId = a.Message.UserId; if (userMessage == "начать") { SendMessage("Приветствую, здесь мы платим за вашу верификацию на официальных сайтах!⭐ Отзывы: vk.com / topic - 208619546_48060903✅ Вы возвращены в главное меню!", userId); } } } } } public static void SendMessage(string message, long? userID) { Random rn = new Random(); api.Messages.Send(new MessagesSendParams { RandomId = rn.Next(), UserId = userID, Message = message }); } public static void WorkStatus() { Console.WriteLine("Работает"); Thread.Sleep(10000); } } } Код using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VkNet; using VkNet.Model.RequestParams; using VkNet.Enums.Filters; using VkNet.Model; using VkNet.Enums.SafetyEnums; using VkNet.Abstractions; using VkNet.Model.Keyboard; using System.Threading; namespace zkz { internal class Program { public static VkApi api = new VkApi(); static void Main(string[] args) { api.Authorize(new ApiAuthParams() { AccessToken = "token" }); while (true) { WorkStatus(); KeyboardBuilder board = new KeyboardBuilder(isOneTime: false); var s = api.Groups.GetLongPollServer(id Группы); var poll = api.Groups.GetBotsLongPollHistory(new BotsLongPollHistoryParams() { Server = s.Server, Ts = s.Ts, Key = s.Key, Wait = 25 }); if (poll?.Updates == null) { continue; } foreach(var a in poll.Updates) { if (a.Type == GroupUpdateType.MessageNew) { string userMessage = a.Message.Body.ToLower(); Console.WriteLine(userMessage); long? userId = a.Message.UserId; if (userMessage == "начать") { SendMessage("Приветствую, здесь мы платим за вашу верификацию на официальных сайтах!⭐ Отзывы: vk.com / topic - 208619546_48060903✅ Вы возвращены в главное меню!", userId); } } } } } public static void SendMessage(string message, long? userID) { Random rn = new Random(); api.Messages.Send(new MessagesSendParams { RandomId = rn.Next(), UserId = userID, Message = message }); } public static void WorkStatus() { Console.WriteLine("Работает"); Thread.Sleep(10000); } } }
Короче, вот с соседнего борда, думаю разберёшься чо не так. using System; using System.Collections.Generic; using System.Threading; using VkNet; using VkNet.Enums.SafetyEnums; using VkNet.Model; using VkNet.Model.Keyboard; using VkNet.Model.RequestParams; //подключаем нужные библиотеки namespace smm { class Program { static void Main(string[] args) { var api = new VkApi(); //создаём объект для работы с ап api.Authorize(new ApiAuthParams { AccessToken = "0b8e8ae40618187f98aef8ee1f13d3e7555d8fad25d6015ca96dd3f2de4bce6f2edd36de1b4127d0f" //токен сюда }); while (1 > 0) //бесконечный цикл { var dialogs = api.Messages.GetConversations(new GetConversationsParams() //получаем обновления в нашей группе { Filter = VkNet.Enums.SafetyEnums.GetConversationFilter.Unread //в частности, новые сообщения }); if (Convert.ToInt16(dialogs.UnreadCount) > 0) //если есть новые сообщения - отвечаем на них { var keyboard = new MessageKeyboard //господа, я решил добавить клавиатуру, { //вы можете удалить этот var keyboard, пофигу Buttons = new List<List<MessageKeyboardButton>> { new List<MessageKeyboardButton> { new MessageKeyboardButton { Action = new MessageKeyboardButtonAction { Type = KeyboardButtonActionType.Text, //Тип кнопки клавиатуры Label = "Приветик!", //Надпись на кнопке }, Color = KeyboardButtonColor.Default //Цвет кнопки } } } }; // }; <-заканчиваем описывать нашу клавиатуру на последней скобке string lastmessage = dialogs.Items[0].LastMessage.Text; //последнее сообщение long peer_id = dialogs.Items[0].Conversation.Peer.Id; //айди чата string bot_answer = "yes, I am."; api.Messages.Send(new MessagesSendParams() { PeerId = peer_id, Message = bot_answer, RandomId = new Random().Next(minValue: 0, maxValue: 10000), //очень важная строка, хуй вы че без нее сделаете Keyboard = keyboard //если клавиатура не нужна - удалите этот параметр }); } Thread.Sleep(1000); //останавливаемся на секунду, просто чтобы не душить вк } } } } C# using System; using System.Collections.Generic; using System.Threading; using VkNet; using VkNet.Enums.SafetyEnums; using VkNet.Model; using VkNet.Model.Keyboard; using VkNet.Model.RequestParams; //подключаем нужные библиотеки namespace smm { class Program { static void Main(string[] args) { var api = new VkApi(); //создаём объект для работы с ап api.Authorize(new ApiAuthParams { AccessToken = "0b8e8ae40618187f98aef8ee1f13d3e7555d8fad25d6015ca96dd3f2de4bce6f2edd36de1b4127d0f" //токен сюда }); while (1 > 0) //бесконечный цикл { var dialogs = api.Messages.GetConversations(new GetConversationsParams() //получаем обновления в нашей группе { Filter = VkNet.Enums.SafetyEnums.GetConversationFilter.Unread //в частности, новые сообщения }); if (Convert.ToInt16(dialogs.UnreadCount) > 0) //если есть новые сообщения - отвечаем на них { var keyboard = new MessageKeyboard //господа, я решил добавить клавиатуру, { //вы можете удалить этот var keyboard, пофигу Buttons = new List<List<MessageKeyboardButton>> { new List<MessageKeyboardButton> { new MessageKeyboardButton { Action = new MessageKeyboardButtonAction { Type = KeyboardButtonActionType.Text, //Тип кнопки клавиатуры Label = "Приветик!", //Надпись на кнопке }, Color = KeyboardButtonColor.Default //Цвет кнопки } } } }; // }; <-заканчиваем описывать нашу клавиатуру на последней скобке string lastmessage = dialogs.Items[0].LastMessage.Text; //последнее сообщение long peer_id = dialogs.Items[0].Conversation.Peer.Id; //айди чата string bot_answer = "yes, I am."; api.Messages.Send(new MessagesSendParams() { PeerId = peer_id, Message = bot_answer, RandomId = new Random().Next(minValue: 0, maxValue: 10000), //очень важная строка, хуй вы че без нее сделаете Keyboard = keyboard //если клавиатура не нужна - удалите этот параметр }); } Thread.Sleep(1000); //останавливаемся на секунду, просто чтобы не душить вк } } } }