π€ ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠ΅ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅? π
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-Π±ΠΎΡΠ΅ Π½Π° Python, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ python-telegram-bot.
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CallbackQueryHandler
def start(update, context):
keyboard = [[InlineKeyboardButton("ΠΠ½ΠΎΠΏΠΊΠ° 1", callback_data='button1')],
[InlineKeyboardButton("ΠΠ½ΠΎΠΏΠΊΠ° 2", callback_data='button2')]]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ:', reply_markup=reply_markup)
def button(update, context):
query = update.callback_query
query.answer()
if query.data == 'button1':
query.edit_message_text(text="ΠΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ 1")
elif query.data == 'button2':
query.edit_message_text(text="ΠΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ 2")
updater = Updater('', use_context=True)
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(CallbackQueryHandler(button))
updater.start_polling()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ /start, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ, Π±ΠΎΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ <YOUR_TOKEN> Π½Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Telegram Π±ΠΎΡΠ°.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠ΅ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π±ΠΎΡΠ° ΠΈ ΡΠΏΡΠΎΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ!
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° python-telegram-bot. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΠ΅ Π½Π΅Ρ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install python-telegram-bot
Π¨Π°Π³ 2: ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° telegram.Bot, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π°Ρ ΡΠΎΠΊΠ΅Π½ Π±ΠΎΡΠ°. Π’ΠΎΠΊΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΡΠΎΠ·Π΄Π°Π² Π±ΠΎΡΠ° Π² Telegram, ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Telegram.
import telegram
bot_token = "YOUR_BOT_TOKEN"
bot = telegram.Bot(token=bot_token)
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠ΅ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ telegram.InlineKeyboardMarkup. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ Π΅Π΅ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΠΎΡΠ°.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ:
button = telegram.InlineKeyboardButton(text="ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ", callback_data="button_pressed")
keyboard = telegram.InlineKeyboardMarkup([[button]])
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ "ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ" ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΊ Π½Π΅ΠΉ callback_data "button_pressed". Callback_data ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
Π¨Π°Π³ 4: ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΈ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ bot.send_message Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ reply_markup, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° InlineKeyboardMarkup Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ.
chat_id = "USER_CHAT_ID"
bot.send_message(chat_id=chat_id, text="ΠΡΠΈΠ²Π΅Ρ! ΠΠ°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ:", reply_markup=keyboard)
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ.
Π¨Π°Π³ 5: ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±ΠΎΡΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ½Π»Π°ΠΉΠ½-ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° callback_query_handler.
@bot.callback_query_handler(func=lambda call: True)
def handle_button_pressed(call):
if call.data == "button_pressed":
bot.send_message(chat_id=call.message.chat.id, text="ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ!")
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ handle_button_pressed, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡΠ»ΠΈ callback_data ΡΠ°Π²Π½ΠΎ "button_pressed", ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ!".
Π¨Π°Π³ 6: ΠΠ°ΠΏΡΡΠΊ Π±ΠΎΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π°ΡΠ°Π» ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
if __name__ == '__main__':
bot.polling(none_stop=True)
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Π°Ρ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Π³ΠΎΡΠΎΠ²! ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠ΅ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅. ΠΡ ΠΏΡΠΎΠΉΠ΄Π΅ΠΌ Π²ΡΠ΅ ΡΠ°Π³ΠΈ, ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΡΠΎΠ² Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. Π£Π΄Π°ΡΠΈ Π² ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ!