На
from telegram import Update, ChatPermissions
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
TOKEN = 'ваш_токен_бота'
CHANNEL_ID = '@ваш_канал' # ID вашего канала
def check_subscription(update: Update, context: CallbackContext):
user_id = update.message.from_user.id
# Проверяем, подписан ли пользователь на канал
try:
member = context.bot.get_chat_member(chat_id=CHANNEL_ID, user_id=user_id)
if member.status in ['member', 'administrator', 'creator']:
# Если подписан - разрешаем сообщение
return True
else:
# Если не подписан - удаляем сообщение
update.message.delete()
context.bot.send_message(
chat_id=update.effective_chat.id,
text=f"Для отправки сообщений необходимо подписаться на канал {CHANNEL_ID}"
)
return False
except:
return False
def message_handler(update: Update, context: CallbackContext):
if not check_subscription(update, context):
return
def main():
updater = Updater(TOKEN)
dp = updater.dispatcher
# Обработчик всех сообщений
dp.add_handler(MessageHandler(Filters.all & ~Filters.command, message_handler))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()