使用pyrogram启动Telegram机器人时出现问题

问题描述 投票:0回答:3

嗨,我在启动一个没有任何内容的机器人时收到错误

我正在使用 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

请问有什么帮助吗?

python-3.x telegram pyrogram
3个回答
0
投票
  1. 升级热解图版本 -
    pip install -U pyrogram
  2. 删除以“.session”结尾的会话文件。在这种情况下,它将是
    SegBot.session
  3. 运行您的代码。

0
投票

升级您的 Pyrogram 版本即可解决问题。


0
投票
from pyrogram import filters
from pyrogram.types import Message

API_KEY = ""
API_HASH = ""
BOT_TOKEN = ""

app = Client(
    'SegBot',
    api_id=API_KEY,
    api_hash=API_HASH,
    bot_token=BOT_TOKEN
)

@app.on_message(filters.private)
async def hello(app, m: Message):
    await m.reply("Hello from Pyrogram!")

print('running!!!')
app.run()

现在这段代码应该可以工作了。

© www.soinside.com 2019 - 2024. All rights reserved.