You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyrogram在树莓派上触发[400 PEER_ID_INVALID]错误的技术求助

解决Pyrogram在树莓派上的PEER_ID_INVALID错误

问题原因

你猜的没错——树莓派上的Pyrogram客户端本地存储里没有目标机器人(ID:1321800342)的Peer信息。Windows上之前运行过脚本,客户端已经和该机器人建立过对话记录,存储了Peer数据;而树莓派是全新环境,客户端无法识别这个陌生的ID,就会抛出PEER_ID_INVALID和KeyError。

解决思路

1. 手动初始化Peer信息

在树莓派上先运行一段极简脚本,让客户端主动获取目标机器人的信息,把Peer数据写入本地存储:

from pyrogram import Client

app = Client("my_account")

async def init_target_peer():
    await app.start()
    # 获取目标机器人的聊天信息,自动存入本地session
    await app.get_chat(1321800342)
    await app.stop()

app.run(init_target_peer())

运行一次这个脚本后,再启动你的主脚本,客户端就能识别这个ID了。

2. 迁移Windows上的Session文件

Windows运行脚本后,会在脚本目录生成my_account.session、my_account.session-journal等文件,把这些文件复制到树莓派上脚本的同一目录下。这样树莓派的客户端直接复用已有存储的Peer信息,无需重新初始化。

3. 改用机器人用户名发送消息

如果目标机器人有公开用户名(比如@MyTestBot),直接用用户名替代ID,Pyrogram会自动向Telegram服务器查询Peer信息,不需要本地存储记录:

# 把原代码里的send_message参数改成用户名
await app.send_message("@MyTestBot", message.text)

内容的提问来源于stack exchange,提问作者Илья Лян

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:36:29