Как отправить сообщение с клавиатурой? · vknet/vk · Discussion #1106 (original) (raw)
Для примера используем простую клавиатуру с одной кнопкой, имеющей надпись "Привет":
var keyboard = new MessageKeyboard { Buttons = new List<List> { new List { new MessageKeyboardButton { Action = new MessageKeyboardButtonAction { Type = KeyboardButtonActionType.Text, //Тип кнопки клавиатуры Label = "Привет", //Надпись на кнопке }, Color = KeyboardButtonColor.Default //Цвет кнопки } } } };
Так же есть построитель клавиатур который предосталяет удобный Fluent интерфейс
var keyboard = new KeyboardBuilder() .AddButton("Подтвердить", "btnValue", KeyboardButtonColor.Primary) .SetInline(false) .SetOneTime() .AddLine() .AddButton("Отменить", "btnValue", KeyboardButtonColor.Primary) .Build();
Для отправки данной клавиатуры нужно просто передать ее при отправке сообщения в свойстве Keyboard:
Api.Messages.Send(new MessagesSendParams { UserId = 12345678, //Id получателя Message = "Message", //Сообщение Keyboard = keyboard, // Клавиатура RandomId = new Random().Next(999999) //Уникальный идентификатор });
Подробную информацию о клавиатурах можно найти здесь.
You must be logged in to vote
Как работать с payload кнопок:
// У нас есть данная клавиатура, которую мы отправим с сообщением (см.выше): var keyboard = new KeyboardBuilder() .AddButton("Привет", "hello", KeyboardButtonColor.Primary) // "hello" является полезной нагрузкой (payload) .SetInline(false) .Build();
// Воспользуемся обработчиком сообщений VKMessageManager с авторизацией от группы (ссылка выше) VKMessageManager manager = new VKMessageManager(); manager.OnNewMessage += (message, sender) => {
switch (message.Payload) // Получаем payload кнопок, после чего обрабатываем его
{
case "{\"button\":\"hello\"}": // payload кнопок приходит в данном формате, "hello" наша полезная нагрузка (payload)
await Api.Messages.SendAsync(new MessagesSendParams()
{
PeerId = message.PeerId.Value, // Отправим сообщение туда, откуда получили
RandomId = random.Next(int.MinValue, int.MaxValue), // Уникальный идентификатор
Message = "Кнопка \"Привет\" работает!!!" // Сообщение
});
break;
}}; manager.StartMessagesHandling();
You must be logged in to vote
0 replies