Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.181.209] |
|
Сообщ.
#1
,
|
|
|
C#, Console, Telegram.Bot
После нажатия на inlineKeyboardButton в консоль должен вывестись текст "ИмяФамилия pressed ТекстКнопки", но не выводится. Дебагер даже не заходит в BotOnCallbackQueryReceived после нажатия на inlineKeyboardButton Что сделано неверно? using System; using System.Linq; using Telegram.Bot.Args; using Telegram.Bot.Types.Enums; using Telegram.Bot.Types.InlineKeyboardButtons; using Telegram.Bot.Types.ReplyMarkups; namespace Telegram.Bot.Examples.Echo { public static class Program { private static readonly TelegramBotClient Bot = new TelegramBotClient("<TOKEN>"); public static void Main(string[] args) { Bot.OnMessage += BotOnMessageReceived; Bot.OnCallbackQuery += BotOnCallbackQueryReceived; var me = Bot.GetMeAsync().Result; Console.Title = me.Username; Bot.StartReceiving(); Console.WriteLine($"Start listening for @{me.Username}"); Console.ReadLine(); Bot.StopReceiving(); } private static async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs) { var message = messageEventArgs.Message; if (message == null || message.Type != MessageType.TextMessage) return; switch (message.Text.Split(' ').First()) { // send inline keyboard case "/inline": await Bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing); var keyboard = new InlineKeyboardMarkup(new[] { new [] // first row { InlineKeyboardButton.WithCallbackData("1.1""), InlineKeyboardButton.WithCallbackData("1.2"), }, new [] // second row { InlineKeyboardButton.WithCallbackData("2.1"), InlineKeyboardButton.WithCallbackData("2.2"), } }); await Bot.SendTextMessageAsync( message.Chat.Id, "Choose", replyMarkup: keyboard); break; default: const string usage = @"Usage: /inline - send inline keyboard "; await Bot.SendTextMessageAsync( message.Chat.Id, usage); break; } } private static async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs callbackQueryEventArgs) { string buttonText = callbackQueryEventArgs.CallbackQuery.Data; string name = $"{callbackQueryEventArgs.CallbackQuery.From.FirstName} {callbackQueryEventArgs.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} pressed {buttonText}"); await Bot.AnswerCallbackQueryAsync( callbackQueryEventArgs.CallbackQuery.Id, $"Received {callbackQueryEventArgs.CallbackQuery.Data}"); } } } |
Сообщ.
#2
,
|
|
|
Решил вопрос?
Та же ситуация. |