从内联键盘回调查询数据

时间:2017-08-01 10:38:18

标签: c# bots telegram

我正在尝试从内联键盘获取数据,我已经搜索了很多但很遗憾没有得到我的答案,并且没有代码对我有效。这是我的代码请帮帮我

    static void Main(string[] args){
       InlineKeyboardButton[][] buttons =
       new InlineKeyboardButton[][]{
       new InlineKeyboardButton[]{newInlineKeyboardButton() { Text = "show Channel", CallbackData = "Data1" }},
       new InlineKeyboardButton[]{new InlineKeyboardButton() { Text = "show Website", CallbackData = "Data2" }}};

       inlineKeyboardMarkup = new InlineKeyboardMarkup() { InlineKeyboard = buttons };

            Task.Run(() => RunBot());
            Console.ReadLine();
        } // End of main method

       public static async Task RunBot(){
           while (true){
                var u = await bot.MakeRequestAsync(new GetUpdates() { Offset 
                = offset });
                foreach (var update in u)
                {
                    offset = update.UpdateId + 1;
                    var text = update.Message.Text;

                    // here I want to get the data like this, but it doesn't work
                    if (update.ChosenInlineResult != null){
                        Console.WriteLine("Chosen Inline Result: " + 
                        update.ChosenInlineResult.ToString());
                    }

            switch(text){
                case "Something":{
                            var req = new SendMessage(update.Message.Chat.Id, "راهنما") { ReplyMarkup = inlineKeyboardMarkup };
                            await bot.MakeRequestAsync(req);
                            break;
                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

你必须替换这个

  if (update.ChosenInlineResult != null){
                    Console.WriteLine("Chosen Inline Result: " + 
                    update.ChosenInlineResult.ToString());
 }

有类似的内容:

if (update.CallbackQuery != null)
 {
    Console.WriteLine(val.CallbackQuery.Message+"-"+val.CallbackQuery.Data);
 }