π ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ aiogram Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ?
from aiogram import Bot
bot = Bot(token="ΡΠΎΠΊΠ΅Π½_Π±ΠΎΡΠ°")
async def change_text(chat_id, message_id, new_text):
await bot.edit_message_text(chat_id=chat_id, message_id=message_id, text=new_text)
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
await change_text(chat_id=123456789, message_id=987654321, new_text="ΠΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡ")
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ aiogram
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ aiogram, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΡΠ° Π΄Π»Ρ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° Telegram. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΡΡ Π±ΠΎΡΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @dp.message_handler()
. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ commands
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π° Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ state
- ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ message.answer()
Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.
@dp.message_handler(commands=['start'], state='*')
async def start_command(message: types.Message):
await message.answer('ΠΡΠΈΠ²Π΅Ρ! Π― Π±ΠΎΡ. ΠΠ°ΠΊ ΠΌΠΎΠ³Ρ ΡΠ΅Π±Π΅ ΠΏΠΎΠΌΠΎΡΡ?')
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ
, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
Π±ΠΎΡΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ message.edit_text()
. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ.
async def change_message_text(message_id: int, new_text: str):
await bot.edit_message_text(chat_id=message.chat.id, message_id=message_id, text=new_text)
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ
Π² aiogram ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ InlineKeyboardButton
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° InlineKeyboardButton
, ΡΠΊΠ°Π·Π°Π² Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ text
Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° InlineKeyboardMarkup.add()
.
button = InlineKeyboardButton(text='ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ', callback_data='button_pressed')
keyboard = InlineKeyboardMarkup().add(button)
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² aiogram:
from aiogram import Bot, Dispatcher, types, executor
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
bot_token = 'YOUR_BOT_TOKEN'
bot = Bot(token=bot_token)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
@dp.message_handler(commands=['start'], state='*')
async def start_command(message: types.Message):
await message.answer('ΠΡΠΈΠ²Π΅Ρ! Π― Π±ΠΎΡ. ΠΠ°ΠΊ ΠΌΠΎΠ³Ρ ΡΠ΅Π±Π΅ ΠΏΠΎΠΌΠΎΡΡ?')
async def change_message_text(message_id: int, new_text: str):
await bot.edit_message_text(chat_id=message.chat.id, message_id=message_id, text=new_text)
@dp.message_handler(commands=['change_text'])
async def change_text_command(message: types.Message):
message_id = await message.answer('ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ')
await change_message_text(message_id=message_id.message_id, new_text='ΠΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ')
@dp.message_handler(commands=['change_button'])
async def change_button_command(message: types.Message):
button = InlineKeyboardButton(text='ΠΠ·ΠΌΠ΅Π½Π΅Π½Π½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°', callback_data='button_pressed')
keyboard = InlineKeyboardMarkup().add(button)
await message.answer('ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ', reply_markup=keyboard)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)