使用Pyrogram启动Telegram Bot时遭遇KeyError:0错误求助
Pyrogram启动Telegram Bot时出现KeyError: 0错误
环境信息
- Pyrogram 2.0.97
- Python 3.9.6
- 选择Pyrogram是因其装饰器特性
基础代码
from pyrogram import Client, filters from pyrogram.types import Message from pyrogram.types import ( InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardMarkup ) TELEGRAM_API_ID = "22284blablabla" TELEGRAM_API_HASH = "186a3759fc29f394bad2700cc29ecblablabla" TELEGRAM_BOT_TOKEN = "blablablablabla" app = Client( 'SegBot', api_id=TELEGRAM_API_ID, api_hash=TELEGRAM_API_HASH, bot_token=TELEGRAM_BOT_TOKEN ) @app.on_message(filters.private) async def hello(client, message): await message.reply("Hello from Pyrogram!") print('running!!!') app.run()
报错信息
running!!! Traceback (most recent call last): File "G:\Drives compartilhados\SEG FIS\API\TELEGRAM BOT TEST\bot_test.py", line 151, in <module> app.run() File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\methods\utilities\run.py", line 84, in run self.start() return loop.run_until_complete(coroutine) File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 642, in run_until_complete return future.result() File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\methods\utilities\start.py", line 58, in start is_authorized = await self.connect() File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\methods\auth\connect.py", line 40, in connect await self.load_session() File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\client.py", line 586, in load_session await Auth( File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\session\auth.py", line 254, in create raise e File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\session\auth.py", line 89, in create res_pq = await self.invoke(raw.functions.ReqPqMulti(nonce=nonce)) File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\session\auth.py", line 67, in invoke return self.unpack(response) File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\session\auth.py", line 60, in unpack return TLObject.read(b) File "C:\Users\roberto.lins\AppData\Roaming\Python\Python39\site-packages\pyrogram\raw\core\tl_object.py", line 33, in read return cast(TLObject, objects[int.from_bytes(b.read(4), "little")]).read(b, *args) KeyError: 0
解决方法
- 检查网络连接:确保网络能正常访问Telegram服务器,若在受限网络环境下,需配置正确的代理(可在Client初始化时通过
proxy参数设置) - 删除旧会话文件:找到Bot运行目录下的
SegBot.session文件并删除,重新启动Bot - 验证API信息:确认API ID、API Hash、Bot Token完全正确,无拼写错误或多余字符
- 更新Pyrogram:执行
pip install --upgrade pyrogram更新到最新稳定版,修复已知bug - 检查防火墙/杀毒软件:确认它们未拦截Python程序的网络请求
内容的提问来源于stack exchange,提问作者Roberto Junior
相关产品推荐
相关产品推荐

