Closed wsnsnsns closed 3 months ago
ai分析过的建议: 好的,我已经看过您的代码,并根据您的错误信息进行了一些分析,以下是我的建议:
Python
if not update.effective_user.id:
return
try: context.bot.get_user(update.effective_user.id) except telegram.error.BadRequest:
return
Python
chat_member = context.bot.get_chat_member(chat_id=update.message.chat.id, user_id=update.effective_user.id)
if chat_member.status not in ("administrator", "member"):
return
Python
try: context.bot.get_user(update.effective_user.id) except telegram.error.Unauthorized:
return
Python
if not update.message.chat.id:
return
chat_member = context.bot.get_chat_member(chat_id=update.message.chat.id, user_id=update.effective_user.id)
if chat_member.status == "left":
return
Python
dispatcher.add_error_handler(error_callback)
def error_callback(update, context): try: raise context.error except BadRequest as e: if e.message == "User not found":
pass
except TelegramError as e:
# 处理其他 Telegram API 错误
pass
其他建议: 在调试时,可以使用 print 语句打印变量值,以验证代码的执行情况。 善用 Telegram API 文档和社区资源,获取更多信息和帮助。 在正式环境中运行 bot 前进行充分测试,以避免出现意外错误。
Telegram 对于群组成员数量的限制并没有一个固定的具体数字,而是根据一些因素进行动态调整。这些因素可能包括群组的活跃度、成员之间的交互频率、群组设置等等。
一般来说,当群组的成员数量达到一定程度时,Telegram 就会开始限制非管理员成员查看完整成员列表。这样做是为了保护群组成员的隐私,并减少滥用或侵犯隐私的可能性。
虽然 Telegram 并没有公开透露这个限制的具体数值,但根据社区的观察和经验,一般来说,当群组的成员数量达到几千人甚至更多时,就可能会出现这种限制。然而,这并不是一个确定的规则,因此实际情况可能会有所不同。
代码位置: https://github.com/Taosky/telegram-search-bot/blob/294e08c220dcb7df5ccd0861df2e414f56f0db65/user_handlers/chat_start.py#L40 get_chat_member 概述:
Bot:xxxxxxxxxx:dispatcher - ERROR - No error handlers are registered, logging exception. Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/telegram/ext/dispatcher.py", line 557, in process_update handler.handle_update(update, self, check, context) File "/usr/local/lib/python3.9/site-packages/telegram/ext/handler.py", line 199, in handle_update return self.callback(update, context) File "/app/user_handlers/chat_start.py", line 40, in start chat_member = context.bot.get_chat_member( File "/usr/local/lib/python3.9/site-packages/telegram/bot.py", line 134, in decorator result = func(*args, **kwargs) File "/usr/local/lib/python3.9/site-packages/telegram/bot.py", line 3474, in get_chat_member result = self._post('getChatMember', data, timeout=timeout, api_kwargs=api_kwargs) File "/usr/local/lib/python3.9/site-packages/telegram/bot.py", line 299, in _post return self.request.post( File "/usr/local/lib/python3.9/site-packages/telegram/utils/request.py", line 361, in post result = self._request_wrapper( File "/usr/local/lib/python3.9/site-packages/telegram/utils/request.py", line 279, in _request_wrapper raise BadRequest(message) telegram.error.BadRequest: User not found