Задать вопрос
meidi
@meidi
Делаю тг ботов

Как реализовать функцию для ограниченного круга лиц?

wlal = [1234567]
    elif message.text == "Алкоголь":
            @bot.message_handler(func=lambda message:  not(message.chat.id not in wlal))
            def wlll(message):
                markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
                btn1 = types.KeyboardButton("Бурбон(Виски)")
                btn2 = types.KeyboardButton("Амаретто")
                btn3 = types.KeyboardButton("Бэйлис")
                btn4 = types.KeyboardButton("Текила")
                btn5 = types.KeyboardButton("Самбука")
                btn6 = types.KeyboardButton("Джин")
                btn7 = types.KeyboardButton("Коньяк")
                btn8 = types.KeyboardButton("Абсент")
                btn9 = types.KeyboardButton("Ром")
                btn10 = types.KeyboardButton("Назад◀")
                markup.add(btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10)
                bot.send_message(1220042717, text="Выбери категорию".format(message.from_user),
                                 reply_markup=markup)

пытался так но он никому не отвечает и не работает
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 2
meidi
@meidi Автор вопроса
Делаю тг ботов
Ура наконец то додумался до решения музой мне послужил другой ответ на вопрос, а так вот код для решения:
elif message.text == "Алкоголь":
                wlal = [1234567]
                message
                if message.chat.id not in wlal:
                    bot.send_message(message.chat.id, "Функция для ограниченого круга лиц")
                else:
                    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
                    btn1 = types.KeyboardButton("Бурбон(Виски)")
                    btn2 = types.KeyboardButton("Амаретто")
                    btn3 = types.KeyboardButton("Бэйлис")
                    btn4 = types.KeyboardButton("Текила")
                    btn5 = types.KeyboardButton("Самбука")
                    btn6 = types.KeyboardButton("Джин")
                    btn7 = types.KeyboardButton("Коньяк")
                    btn8 = types.KeyboardButton("Абсент")
                    btn9 = types.KeyboardButton("Ром")
                    btn10 = types.KeyboardButton("Назад◀")
                    markup.add(btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10)
                    bot.send_message(message.chat.id, text="Выбери категорию".format(message.from_user),
                                     reply_markup=markup)
Ответ написан
Комментировать
Treimox
@Treimox
Создайте массив или занесите в базу данных ID тех, кому разрешено исполнять команду (в нашем случае нажимать на кнопку).

Я не пишу ботов на PyTelegramBotApi (а я так понимаю Вы его используете), я пишу на Aiogram, думаю, портировать код под себя не составит труда.

@dp.message_handler(commands=['алкоголь'], commands_prefix='+')
async def drink(message: types.Message):
    ids = [21212121, 28282821, 27171721]

    inline = InlineKeyboardMarkup(row_width=2)
    btn1 = InlineKeyboardButton(text='Бурбон(Виски)', callback_data='viski')
    btn2 = InlineKeyboardButton(text='Амаретто', callback_data='belis')
    inline.add(btn1, btn2)

    await message.answer("Выберите категорию", reply_markup=inline)

    @dp.callback_query_handler()
    async def buttons(callback: types.CallbackQuery):
        if callback.data == 'viski':
            if callback.from_user.id in ids:
                await message.answer("Вы приобрели виски!")
            else:
                await message.answer("Нет доступа!")
        elif callback.data == 'belis':
            if callback.from_user.id in ids:
                await message.answer("Вы приобрели бэйлис!")
            else:
                await message.answer("Нет доступа!")

И так с остальными кнопками.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы