π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² Π’Π΅Π»Π΅Π³ΡΠ°ΠΌΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python? π | Π£ΡΠΎΠΊΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² Telegram Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ python-telegram-bot. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import telegram
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
def start(update, context):
button = InlineKeyboardButton("ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ", callback_data="button_pressed")
keyboard = InlineKeyboardMarkup([[button]])
update.message.reply_text("ΠΡΠΈΠ²Π΅Ρ! ΠΠ°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ:", reply_markup=keyboard)
def button_pressed(update, context):
update.message.reply_text("Π’Ρ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ!")
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Updater ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ Π²Π°Ρ ΡΠΎΠΊΠ΅Π½ Π±ΠΎΡΠ°
updater = telegram.Updater(token="YOUR_BOT_TOKEN", use_context=True)
# ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄
updater.dispatcher.add_handler(telegram.ext.CommandHandler("start", start))
updater.dispatcher.add_handler(telegram.ext.CallbackQueryHandler(button_pressed))
# ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π±ΠΎΡΠ°
updater.start_polling()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° python-telegram-bot Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "start", ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. ΠΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ "button_pressed", ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ "YOUR_BOT_TOKEN" Π½Π° ΡΠ²ΠΎΠΉ ΡΠΎΠΊΠ΅Π½ Π±ΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π».
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python?
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² Telegram, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΡΠ»ΠΈΡΠ½ΠΎ! ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° python-telegram-bot. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install python-telegram-bot
Π¨Π°Π³ 2: ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π±ΠΎΡΠ°
ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° telegram.Bot
.
import telegram
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Bot
bot = telegram.Bot(token='YOUR_BOT_TOKEN')
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ YOUR_BOT_TOKEN
Π½Π° ΡΠΎΠΊΠ΅Π½ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΎΡΠ°. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠΎΠΊΠ΅Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ, ΡΠ»Π΅Π΄ΡΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ telegram.ReplyKeyboardMarkup
ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° add_keyboard_button
. ΠΠ°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° send_message
.
from telegram import ReplyKeyboardMarkup, KeyboardButton
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ReplyKeyboardMarkup
keyboard = ReplyKeyboardMarkup([[KeyboardButton('ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ')]])
# ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ
bot.send_message(chat_id=chat_id, text='ΠΡΠΈΠ²Π΅Ρ! ΠΠ°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ:', reply_markup=keyboard)
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ chat_id
Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π¨Π°Π³ 4: ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ. Π ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
from telegram.ext import Updater, MessageHandler, Filters
# Π€ΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ
def button_handler(update, context):
# ΠΠ°Ρ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Updater
updater = Updater(token='YOUR_BOT_TOKEN', use_context=True)
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ
dispatcher = updater.dispatcher
# Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ
dispatcher.add_handler(MessageHandler(Filters.text('ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ'), button_handler))
# ΠΠ°ΠΏΡΡΠΊ Π±ΠΎΡΠ°
updater.start_polling()
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠ²ΠΎΠ΄
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² Telegram Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. ΠΡΠΏΠΎΠ»Π½ΠΈΠ² Π²ΡΠ΅ ΡΠ°Π³ΠΈ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΡ. Π£Π΄Π°ΡΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅!