static void Main() { Console.WriteLine("Start!"); var bot = new BotClient("<your bot token>"); bot.SetMyCommands(new BotCommand("callback", "new callback")); // Long Polling var updates = bot.GetUpdates(); while (true) { if (updates.Length > 0) { foreach (var update in updates) { switch (update.Type) { case UpdateType.Message: var message = update.Message; if (message.Text.Contains("/callback")) { var replyMarkup = new InlineKeyboardMarkup { InlineKeyboard = new InlineKeyboardButton[][] { new InlineKeyboardButton[] { InlineKeyboardButton.SetCallbackData("Callback", "callback_data") } } }; bot.SendMessage(message.Chat.Id, "Message with callback data", replyMarkup: replyMarkup); } break; case UpdateType.CallbackQuery: var query = update.CallbackQuery; bot.AnswerCallbackQuery(query.Id, "HELLO"); bot.EditMessageText(new EditMessageTextArgs { ChatId = query.Message.Chat.Id, MessageId = query.Message.MessageId, Text = $"Click!\n\n{query.Data}" }); break; } } updates = updates = bot.GetUpdates(offset: updates.Max(u => u.UpdateId) + 1); } else { updates = bot.GetUpdates(); } } }
/// <summary>Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.</summary> /// <param name="bot">BotClient</param> /// <param name="inlineMessageId">Required if chat_id and message_id are not specified. Identifier of the inline message</param> /// <param name="text">New text of the message, 1-4096 characters after entities parsing</param> /// <param name="parseMode">Mode for parsing entities in the message text. See formatting options for more details.</param> /// <param name="entities">A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode</param> /// <param name="disableWebPagePreview">Disables link previews for links in this message</param> /// <param name="replyMarkup">A JSON-serialized object for an inline keyboard.</param> /// <exception cref="BotRequestException">Thrown when a request to Telegram Bot API got an error response.</exception> /// <exception cref="ArgumentNullException">Thrown when a required parameter is null.</exception> /// <returns><see cref="Message"/> or <see cref="bool"/>. On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned.</returns> public static T EditMessageText <T>(this BotClient bot, string inlineMessageId, string text, [Optional] string parseMode, [Optional] MessageEntity[] entities, [Optional] bool?disableWebPagePreview, [Optional] InlineKeyboardMarkup replyMarkup) { var args = new EditMessageTextArgs { InlineMessageId = inlineMessageId, Text = text, ParseMode = parseMode, Entities = entities, DisableWebPagePreview = disableWebPagePreview, ReplyMarkup = replyMarkup }; return(bot.EditMessageText <T>(args)); }