@pphhpphh

Как проверить подписку у пользователя на паблики из списка?

Есть код
def check_sub(chat_member):
	if chat_member['status'] != 'left':
		return True
	else:
		return False

if check_sub(await bot.get_chat_member(chat_id=channels, user_id=message.from_user.id)):
		await message.answer("Добро пожаловать !", reply_markup=ChannelButtons)
	else:
		await message.answer("Подпишитесь на каналы", reply_markup=ChannelButtons)


Но он проверяет подписку только на последний канал
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
@mishpro
Вы в своем коде, в блоке if используете в качестве id чата массив, а не integer. Попробуйте заключить это условие в цикл, например:
#количество подписок
subs = 0
for channel in channels:
    if check_sub(await bot.get_chat_member(chat_id=channel, user_id=message.from_user.id):
        subs += 1
if subs == len(channels):
    ...отправка сообщения о продолжении...
else:
    ...вы не подписаны...

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

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

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