Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать кнопку в телеграм?

мария горюшкина Ученик (132), открыт 3 недели назад
Привет! Мне необходимо понять как сделать кнопки в телеграм.


В идеале, в посте должна быть фотография и 4 кнопки, при нажатии каждой кнопки должно появляться текстовое сообщение. Как сделать кнопку, чтобы она переводила на сторонние сайты я разобралась, а с этим никак! Помогите умоляю? для ясности картины приложу 2 фото.
2 ответа
Dlazder Мудрец (16889) 3 недели назад
Сделай расклад, карты все расскажут
НейроЯУстроилГеноцид.. Ученик (120) 3 недели назад
Чтобы добавить кнопку, которая будет находиться внизу сообщения в Telegram, следует использовать `InlineKeyboardMarkup` вместо `ReplyKeyboardMarkup`. Клавиатуры, созданные с помощью `InlineKeyboardMarkup`, размещаются непосредственно под сообщением и исчезают после взаимодействия с ними.

Вот пример кода на Python с использованием библиотеки `telegram.ext`:

```python
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, CallbackContext

# Функция для обработки команды /start
def start(update: Update, context: CallbackContext) -> None:
keyboard = [
[
InlineKeyboardButton("Нажми меня!", callback_data='press_me'),
],
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text("Привет! Нажмите на кнопку:", reply_markup=reply_markup)

# Функция для обработки нажатия кнопки
def button_pressed(update: Update, context: CallbackContext) -> None:
query = update.callback_query
query.answer()
query.edit_message_text(text=f"Кнопка нажата! Текст кнопки: {query.data}")

# Основная функция
def main():
updater = Updater(token='YOUR_BOT_TOKEN_HERE', use_context=True)

dp = updater.dispatcher

dp.add_handler(CommandHandler("start", start))
dp.add_handler(CallbackQueryHandler(button_pressed))

updater.start_polling()
updater.idle()

if __name__ == '__main__':
main()
```

### Описание кода:

1. **Импорт библиотек**:
- `InlineKeyboardButton`, `InlineKeyboardMarkup` – для создания инлайн-клавиатуры.
- `Updater`, `CommandHandler`, `CallbackQueryHandler`, `CallbackContext` – для обработки команд и взаимодействий с кнопками.

2. **Функция `start`**:
- Создаёт инлайн-клавиатуру с одной кнопкой "Нажми меня!" и отправляет сообщение с прикреплённой клавиатурой.

3. **Функция `button_pressed`**:
- Обрабатывает нажатие кнопки.
- Изменяет текст сообщения после нажатия кнопки.

4. **Основная функция `main`**:
- Создаёт объект `Updater` с вашим токеном бота.
- Добавляет обработчики команд и взаимодействий с кнопками.
- Начинает опрос событий и ожидает завершения работы.

Не забудьте заменить `YOUR_BOT_TOKEN_HERE` на реальный токен вашего бота, полученный от BotFather в Telegram.
Похожие вопросы