Здравствуйте! Уже успел сломать голову с Telegram.Bot.
Я использую webhook, всё прекрасно работает, но как только я решил подключить к приложению inline клавиатуру, тот тут-то и начались проблемы. Я подключил клавиатуру, она отображается, однако при нажатии на кнопку мне должен отдаваться callback_query, однако происходит ошибка "System.NullReferenceException".
Соответственно в update.CallbackQuery ничего не попадает.
Может быть я сформулировал непонятно, за что прошу прощения, но также прошу помощи, ибо устал копать api телеграма.
public async Task<IHttpActionResult> PostAsync(Update update)
{
switch (update.Type)
{
case UpdateType.MessageUpdate:
if (message.Text.StartsWith("/inline"))
{
await Botz.api.SendChatActionAsync(message.Chat.Id, Telegram.Bot.Types.Enums.ChatAction.Typing);
var keyboard = new InlineKeyboardMarkup(new[]
{
new[]
{
new InlineKeyboardButton{ Text="1.1", Url="https://vk.com/"},
new InlineKeyboardButton{Text="1.2",SwitchInlineQuery = "1.2"},
},
new[]
{
new InlineKeyboardButton{Text="2.1",CallbackData="he"},
//new InlineKeyboardButton{Text="2.2",CallbackData="2.2"},
}
});
await Task.Delay(500);
await Botz.api.SendTextMessageAsync(message.Chat.Id, "Choose", replyMarkup: keyboard);
}
break;
case UpdateType.CallbackQueryUpdate:
Console.WriteLine("CallBack enable");
await Botz.api.EditInlineMessageTextAsync(update.CallbackQuery.InlineMessageId, "test");
await Botz.api.AnswerCallbackQueryAsync(update.CallbackQuery.Id, text: "test");
break;
}
}
Похоже, что Вы путаете понятия InlineButton
и InlineMessage
.
Ваши методы
await Botz.api.EditInlineMessageTextAsync(update.CallbackQuery.InlineMessageId, "test");
await Botz.api.AnswerCallbackQueryAsync(update.CallbackQuery.Id, text: "test");
предназначены как раз-таки для работы с InlineMessage
в Inline-режиме. Замените их на этот метод
Botz.api.EditMessageTextAsync(update.CallbackQuery.Message.Chat.Id, update.CallbackQuery.Message.MessageId, "test");
Виртуальный выделенный сервер (VDS) становится отличным выбором
Типизированный DataSet- это DataSet в котором заведомо известны все DataTable и обращаться к ним можно по имениВ свою очередь DataTable тоже известны и можно...
Всем доброго времени суток помогите пожалуйста определить размер структуры в C#, есть некая структура на C++ :