На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Telegram.Bot. Не срабатывает .OnCallbackQuery , C#, Console, Telegram.Bot
    C#, Console, Telegram.Bot

    После нажатия на inlineKeyboardButton в консоль должен вывестись текст "ИмяФамилия pressed ТекстКнопки", но не выводится.

    Дебагер даже не заходит в BotOnCallbackQueryReceived после нажатия на inlineKeyboardButton

    Что сделано неверно?

    ExpandedWrap disabled
      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}");
              }
          }
      }
      Решил вопрос?
      Та же ситуация.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0175 ]   [ 16 queries used ]   [ Generated: 28.03.24, 19:11 GMT ]