Загрузка...

Problems with getChatMember aiogram3

Thread in Python created by h3artkrush Jan 22, 2025. 185 views

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

    случается это редко (но иногда может 2 раза за день) и длиться пару часов, что это может быть?
     
    1. Gosha_coder
      h3artkrush, и вообще код в студию предоставь
    2. h3artkrush Topic starter
      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
  2. Nekro3
    Nekro3 Jan 22, 2025 Закажи разработку тут - lolz.live/threads/7578402/
    подробнее,
    ты про ChatMemberLeft?
     
    1. h3artkrush Topic starter
      Nekro3, статус подписки юзера left, ну типо то что он вышел (ну на самом деле это не так, юзер подписан на канал)
    2. Nekro3
      h3artkrush, как появится ошибка, попробуй такой же запрос к другому каналу сделать и посмотреть ответ, если left - бот проклят и меняй его
    3. h3artkrush Topic starter
      Nekro3, ошибки нету никакой, просто он хуйню какую-то возвращает, вот думаю что это все мб из за русского сервака, так-как читал что из за этого траблы с тг апи есть.

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

      я еще думал что это мб лимиты какие-то, но чет тоже не нашел никакой инфы о лимитах
    4. View the next comments (2)
  3. h3artkrush
    h3artkrush Topic starter Jan 22, 2025 вип клиент в любом заведении
    оно еще ломается редко и вот как то думаю может все-таки лимиты, потому-что юзеров в боте достаточно много
     
    1. рандомли
      h3artkrush, может апишка телеги подвисает
    2. h3artkrush Topic starter
      рандомли, ну я ща ****** поставил вроде норм работает, пройдет время посмотрим :interesting:
Top
Loading...