使用Pyrogram调用get_messages触发OverflowError问题求助
问题:调用
get_messages时触发OverflowError: int too big to convert错误 执行以下代码时:
await bot.get_messages(CHAT_ID, MESSAGE_ID)
出现OverflowError: int too big to convert错误,且CHAT_ID和MESSAGE_ID均为int类型。
解决方法
- 检查数值范围:Python的int支持大数值,但部分Telegram客户端库的底层依赖可能对32位整数有兼容限制。确保CHAT_ID和MESSAGE_ID未超出Telegram API的实际可用范围(Chat ID通常不超过
9e18,Message ID一般在1e10以内)。 - 改用字符串传入ID:多数Telegram SDK(如Pyrogram、Telethon)支持接收字符串类型的ID,可绕过整数转换限制。修改代码如下:
await bot.get_messages(str(CHAT_ID), str(MESSAGE_ID)) - 更新依赖库版本:旧版本的Telegram客户端库可能存在大整数处理的bug,升级到最新稳定版:
# 若使用Pyrogram pip install --upgrade pyrogram # 若使用Telethon pip install --upgrade telethon - 验证ID有效性:确认CHAT_ID格式正确(如超级群组ID带负号、频道ID格式合规),且MESSAGE_ID确实存在于目标对话中,无效ID也可能引发异常。
预期结果
执行await app.get_messages(CHAT_ID, MESSAGE_ID)应返回types.Message类型对象。
内容的提问来源于stack exchange,提问作者NaZZaR4iK
相关产品推荐
相关产品推荐

