Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как создать бота который не будет разрешать писать участникам в чат без подписки на телеграм канал???

Яна Соляхх Ученик (105), открыт 4 недели назад
я нашёл в Ютубе гайды только про "как создать бота который не выдаст что-то без подписки на тгк". а мне нужно что бы он запрещал писать участникам в чат которые не подписаны. помогите пожалуйста
2 ответа
Рустам Абдрашитов Мудрец (14307) 4 недели назад
На
 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()
Роберт БалдинУченик (169) 4 недели назад
Большие чаты быстро выбьют боту рейт лимит, лучше кешировать с таймаутом кеша минут 30, подписанных чтобы не переспрашивать кучу раз
Рустам Абдрашитов Мудрец (14307) Роберт Балдин, я не думаю что у школьницы большой чат и вообще она разберется как им пользоваться и запустить
Mike Morty Ученик (100) 4 недели назад
Ну, сделай так что бы не выдавал разрешение писать через роль админа. Сделай так что бы после захода выдавалась роль админа с определённым разрешением, в нашем случае возможность писать в чат, убери просто и все, а после подписки выдаст
Похожие вопросы