Загрузка...

Проблемы с getChatMember aiogram3

Тема в разделе Python создана пользователем h3artkrush 22 янв 2025. 187 просмотров

  1. h3artkrush
    h3artkrush Автор темы 22 янв 2025 вип клиент в любом заведении
    бывает такое, что иногда при проверке подписки на канал бот всем, независимо от того подписан человек или нет возвращает left

    случается это редко (но иногда может 2 раза за день) и длиться пару часов, что это может быть?
     
    1. Gosha_coder
      h3artkrush, и вообще код в студию предоставь
    2. h3artkrush Автор темы
      Gosha_coder,
      Python
      @router.callback_query(F.data == "checks_subscribe")
      async def check_subscribe_callback(callback: CallbackQuery, bot: Bot, session: AsyncSession, config: Config):
      SPONSOR_CHECK_MESSAGE = '''
      <b>Уважаемый пользователь</b>, к сожалению, вы не подписаны на спонсоров

      <i>Подпишитесь на каналы спонсоров и нажмите кнопку
      «✅ Проверить подписку»</i>
      '''

      user_id = callback.from_user.id
      user_data = await db.get_user(session, user_id)
      ref_id = user_data.refferal_id if user_data else None
      if ref_id:
      ref_data = await db.get_user(session, ref_id)
      ref_username = ref_data.username if ref_data else None
      else:
      ref_username = "Без реферера"

      public_channels = [
      channel for channel in await db.get_all_channels(session)
      if channel.channel_status == 'Публичный'
      ]

      # Проверяем подписку на каждый публичный канал
      for channel in public_channels:
      try:
      member = await bot.get_chat_member(
      chat_id=channel.channel_id,
      user_id=user_id
      )
      if member.status not in ["member", "administrator", "creator"]:
      await bot.delete_message(callback.message.chat.id, callback.message.message_id)
      photo = FSInputFile('bot/assets/images/sponsors.jpg')
      await callback.message.answer_photo(
      photo=photo,
      caption=SPONSOR_CHECK_MESSAGE,
      reply_markup=await kb.get_channels_keyboard(await db.get_all_channels(session))
      )
      await callback.answer()
      return

      except Exception as e:
      logger.error(f"Ошибка при проверке подписки на канал {channel.channel_id}: {e}")
      await callback.message.answer(
      "Произошла ошибка при проверке подписки. Пожалуйста, попробуйте позже."
      )
      await callback.answer()
      return
      22 янв 2025 Изменено
  2. Nekro3
    Nekro3 22 янв 2025 Закажи разработку тут - lolz.live/threads/7578402/
    подробнее,
    ты про ChatMemberLeft?
     
    1. Посмотреть предыдущие комментарии (2)
    2. h3artkrush Автор темы
      Nekro3, ошибки нету никакой, просто он хуйню какую-то возвращает, вот думаю что это все мб из за русского сервака, так-как читал что из за этого траблы с тг апи есть.

      это кстати не в одном боте, а в 2, получается оба прокляты)

      я еще думал что это мб лимиты какие-то, но чет тоже не нашел никакой инфы о лимитах
      22 янв 2025 Изменено
    3. Gosha_coder
      h3artkrush, у меня все боты стоят на русском серваке,когда бота на своем пк запускаешь,тоже же русский айпи адрес
      И никаких траблов
      22 янв 2025 Изменено
    4. h3artkrush Автор темы
      Gosha_coder, я говорил именно про ботов с проверкой на подписку (getChatMember), на русских серваках у меня проблемы только с ботами где проверка подписки, c остальными все норм
  3. h3artkrush
    h3artkrush Автор темы 22 янв 2025 вип клиент в любом заведении
    оно еще ломается редко и вот как то думаю может все-таки лимиты, потому-что юзеров в боте достаточно много
     
    1. рандомли
      h3artkrush, может апишка телеги подвисает
    2. h3artkrush Автор темы
      рандомли, ну я ща ****** поставил вроде норм работает, пройдет время посмотрим :interesting:
Top
Загрузка...