错误消息堵塞 Telethon 导致安全错误:服务器发送了一条非常新的消息 xxxxx 被忽略

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

我真的很茫然,最近迁移到新机器,电视马拉松似乎刚刚坏了。我已经与其他人核实过,所以可能只是我,但我不知道如何解决这个问题,因为它似乎是服务器端/电视节目,但由于它似乎在我这边,所以似乎并非如此显而易见。

每当从现有会话启动电视马拉松时,我都会收到两条错误消息:

服务器发送了一条非常新的消息,ID 为 xxxxxxxxxxxxxxxxxxx,忽略
服务器发送了一条非常新的消息,ID 为 xxxxxxxxxxxxxxxxxxx,忽略

此后,它会被以下错误消息阻塞,从而阻止任何执行:

[警告/2022-09-07] telethon.network.mtprotosender:解压收到的消息时出现安全错误:必须连续忽略太多消息

我附加了一些标准代码,可以为我重现此错误。有人可以告诉我造成这种情况的原因吗?对此该怎么办?从 pip 运行 3.10 Python 和最新的 Telethon。

from telethon import TelegramClient, events
from telethon.sessions import StringSession

api_id = 1xxxxxxxxxx
api_hash = '2xxxxxxxxxxxxx'
ph = '+1xxxxxxxxxxxxxxxx' 
key = 'xxxxxx...'

#client = TelegramClient('session', api_id, api_hash).start(phone = ph)
client = TelegramClient(StringSession(key), api_id, api_hash).start(phone = ph)

channelId = 'xxxxxxx'

@client.on(events.NewMessage(chats = [channelId]))
async def main(event):
     try:
         me = client.get_me()
         print(me.stringify())
         print(event.stringify())
     except Exception as e:
         print(e)
    

client.run_until_disconnected()
python server telegram telethon
4个回答
6
投票

我在1.25.2版本中也遇到了同样的问题。解决办法,在Windows时间设置中,启用自动设置时间和时区


1
投票

如果您使用 WSL(适用于 Linux 的 Windows 子系统)来运行使用 Telethon 的 Python 代码,则在 Windows 中的“时间和语言”>“日期和时间”设置下启用“自动设置时区”仍然至关重要,以避免“服务器发送了一条非常新的消息(..)被忽略”问题。

我尝试从 Telegram 桌面应用程序终止会话,更改 https://my.telegram.org 中的应用程序名称(及其简称)等,这是唯一对我有用的解决方案!


0
投票

每次运行脚本时,都会在当前目录中创建一个新的

.session
文件。删除这些文件允许您重复使用相同的会话名称。这应该可以解决问题。


0
投票

关于如何写出好的答案

您正在使用 WSL(适用于 Linux 的 Windows 子系统)来运行使用 Telethon 的 Python 代码,在 Windows 中的“时间和语言”>“日期和时间”设置下启用“自动设置时区”仍然至关重要,为了避免“服务器发送了一条非常新的消息(..)被忽略”问题。

我尝试从 Telegram 桌面应用程序终止会话,更改 https://my.telegram.org 中的应用程序名称(及其简称)等,这是唯一对我有用的解决方案!

分享 编辑 关注

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