Инлайн кнопки Telegram это

В сегодняшнем уроке посвященном серии уроков pyrogram научимся формировать инлайн кнопки, отправлять их пользователю и обрабатывать нажатия на них.

Код к уроку

from pyrogram import Client, idle, filters from pyrogram.enums import ParseMode from pyrogram.handlers import MessageHandler, CallbackQueryHandler from pyrogram.types import Message, BotCommand, InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery api_id = 12345678 api_hash = ‘abcdefghijklmnopqrstuvwxyz’ bot_token = ‘9876543210:abcdefghijklm’ client = Client(name=’me_client_bot’, api_id=api_id, api_hash=api_hash, parse_mode=ParseMode.HTML) inline_keyboard = InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton( text=’Basic button’, callback_data=’basic_button’ ), InlineKeyboardButton( text=’Link’, url=’https://nztcoder.com’ ), InlineKeyboardButton( text=’Added button’, callback_data=’add_button’ ) ], [ InlineKeyboardButton( text=’Profile’, user_id=5528605206 ) ] ]) def command_start(client: Client, message: Message): message.reply(‘Hi! You entered start command.’, reply_markup=inline_keyboard) def command_basic(client: Client, call: CallbackQuery): client.answer_callback_query(call.id) call.message.reply(f’You press button with callback_data call.data>’) def command_add(client: Client, call: CallbackQuery): client.answer_callback_query(call.id) call.message.reply(f’You press button (Added_button) with callback_data call.data>’) def call_data(data): async def filter_data(self, __, call: CallbackQuery): # return self.data == call.data return self.data in call.data return filters.create(filter_data, data=data) client.add_handler(CallbackQueryHandler(command_basic, call_data(‘basic_button’))) client.add_handler(CallbackQueryHandler(command_add, call_data(‘add_button’))) # client.add_handler(CallbackQueryHandler(command_basic)) client.add_handler(MessageHandler(command_start, filters.command(commands=’start’))) bot_commands = [ BotCommand( command=’start’, description=’Get started’ ), BotCommand( command=’run’, description=’Launch’ ), BotCommand( command=’go’, description=’Go to’ ) ] client.start() client.set_bot_commands(bot_commands) idle() client.stop()

Источник: nztcoder.com

Разработка Telegram Bot на Python. (2.1 Inline Кнопки)

Инлайн кнопки telegram это

Инлайн кнопки остаются в переписке с ботом. Возможно повторное нажатие этих кнопок.

Присутствуют в ботах Telegram, Viber, VK, Facebook.

В ботах Telegram инлайн-кнопка может вести на другое сообщение, открывать внешнюю ссылку, быть кнопкой вызова — для набора номера телефона, открывать корзину, если корзина добавлена в бот, вести на веб-приложение.

В Telegram можно добавить до 11 инлайн кнопок. Кнопки располагаются по 1 или по 2 в ряд. Перед кнопками обязательно нужно добавить текст от 1 до 2000 символов. Не рекомендуется задавать длинное название кнопок, т.к. оно будет обрезаться и на разных устройствах выглядеть по-разному.

Еще по теме:  Как установить ник в Телеграмме в ирисе

В ботах Viber инлайн-кнопка может вести на другое сообщение, открывать внешнюю ссылку, быть кнопкой вызова — выводить в переписку заданный номер телефона.

В ботах Viber можно добавить до 4 кнопок. Кнопки располагаются друг под другом по 1 в ряду. Перед кнопками обязательно нужно добавить текст.
Максимальная длина текста перед 1 кнопкой 138 знаков или 6 строк текста на экране мобильного.
Максимальная длина текста перед 2 кнопками 113 знаков или 5 строк текста на экране мобильного.
Максимальная длина текста перед 3 кнопками 87 знаков или 4 строки текста на экране мобильного.
Максимальная длина текста перед 4 кнопками 61 знаков или 3 строки текста на экране мобильного.

Не рекомендуется задавать название кнопок длиннее 16 символов, т.к. оно будет обрезаться и на разных устройствах выглядеть по-разному.

Источник: learn.chatforma.com

C#. Обработка нажатия inline и reply кнопок для бота telegram

Для создания telegram-бота использую package Telegram.Bot.13.4.0. Сделал inline-кнопки следующим образом:

var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(new[] < new [] // first row < InlineKeyboardButton.WithUrl(«1.1″,»www.google.com»), InlineKeyboardButton.WithCallbackData(«1.2»), >, new [] // second row < InlineKeyboardButton.WithCallbackData(«2.1»), InlineKeyboardButton.WithCallbackData(«2.2»), >>); await client.SendTextMessageAsync(chatId, «Жамкни!», replyMarkup: keyboard);

Подскажите, как теперь обработать событие нажатия на эти кнопки? К примеру, я в telegram нажимаю на inline-кнопку, а бот должен мне прислать ответ. Также интересует, как обработать событие нажатия на reply-кнопку. Их делаю следующим образом:

var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup < Keyboard = new[] < new[] // row 1 < new Telegram.Bot.Types.KeyboardButton(«Первая кнопко»), new Telegram.Bot.Types.KeyboardButton(«Вторая кнопко»), >, >, ResizeKeyboard = true >; await client.SendTextMessageAsync(chatId, «Жамкни!», replyMarkup: keyboard);

Отслеживать

3,710 1 1 золотой знак 18 18 серебряных знаков 47 47 бронзовых знаков

задан 23 фев 2018 в 20:23

himynameissergey himynameissergey

31 1 1 золотой знак 2 2 серебряных знака 4 4 бронзовых знака

Еще по теме:  Как пробить информацию о человеке по номеру телефона Телеграм

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...