π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² telegram Π±ΠΎΡΠ΅ Π½Π° Python: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-Π±ΠΎΡΠ΅ Π½Π° Python, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ python-telegram-bot.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler
def start(update, context):
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
button = InlineKeyboardButton(text='ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ', callback_data='button_pressed')
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ
keyboard = InlineKeyboardMarkup([[button]])
# ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ
update.message.reply_text('ΠΡΠΈΠ²Π΅Ρ! ΠΠ°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Π½ΠΈΠΆΠ΅:', reply_markup=keyboard)
def button_callback(update, context):
query = update.callback_query
query.answer('ΠΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ°!')
updater = Updater(token='YOUR_BOT_TOKEN', use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CallbackQueryHandler(button_callback, pattern='button_pressed'))
updater.start_polling()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° InlineKeyboardButton ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ Π΅Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° InlineKeyboardMarkup. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° reply_text ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ reply_markup.
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ button_callback, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "ΠΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ°!".
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Telegram-Π±ΠΎΡΠ΅ Π½Π° Python
Telegram-Π±ΠΎΡΡ ΡΡΠ°Π»ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π°Ρ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² Telegram-Π±ΠΎΡΠ΅ Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠΏΡΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±ΠΎΡΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Telegram-Π±ΠΎΡΠ΅ Π½Π° Python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ python-telegram-bot.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ python-telegram-bot
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ python-telegram-bot Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install python-telegram-bot
Π¨Π°Π³ 2: ΠΠΌΠΏΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ python-telegram-bot Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Telegram-Π±ΠΎΡΠ΅.
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ InlineKeyboardButton ΠΈ InlineKeyboardMarkup ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ python-telegram-bot.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ:
button1 = InlineKeyboardButton("ΠΠ½ΠΎΠΏΠΊΠ° 1", callback_data='button1')
button2 = InlineKeyboardButton("ΠΠ½ΠΎΠΏΠΊΠ° 2", callback_data='button2')
keyboard = [[button1, button2]]
reply_markup = InlineKeyboardMarkup(keyboard)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ "ΠΠ½ΠΎΠΏΠΊΠ° 1" ΠΈ "ΠΠ½ΠΎΠΏΠΊΠ° 2". ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ callback_data ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π¨Π°Π³ 4: ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Π§ΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ°ΡΠ΅ Ρ Π±ΠΎΡΠΎΠΌ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ sendMessage ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° telegram.Bot.
bot.send_message(chat_id=update.message.chat_id, text='ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ:', reply_markup=reply_markup)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ update.message.chat_id - ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. reply_markup - ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ InlineKeyboardMarkup, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π½Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CallbackQueryHandler
def start(update, context):
button1 = InlineKeyboardButton("ΠΠ½ΠΎΠΏΠΊΠ° 1", callback_data='button1')
button2 = InlineKeyboardButton("ΠΠ½ΠΎΠΏΠΊΠ° 2", callback_data='button2')
keyboard = [[button1, button2]]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ:', reply_markup=reply_markup)
def button_click(update, context):
query = update.callback_query
button_clicked = query.data
if button_clicked == 'button1':
query.edit_message_text(text='ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ 1')
elif button_clicked == 'button2':
query.edit_message_text(text='ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ 2')
def main():
updater = Updater('YOUR_TOKEN', use_context=True)
updater.dispatcher.add_handler(CallbackQueryHandler(button_click))
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ - start ΠΈ button_click. Π€ΡΠ½ΠΊΡΠΈΡ start ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Π° ΡΡΠ½ΠΊΡΠΈΡ button_click ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Telegram-Π±ΠΎΡΠ΅ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ python-telegram-bot. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π²Π°ΡΠΈΠΌ Π±ΠΎΡΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΠΎΡΠΎΠ² Π½Π° Telegram!