我真的很茫然,最近迁移到新机器,电视马拉松似乎刚刚坏了。我已经与其他人核实过,所以可能只是我,但我不知道如何解决这个问题,因为它似乎是服务器端/电视节目,但由于它似乎在我这边,所以似乎并非如此显而易见。
每当从现有会话启动电视马拉松时,我都会收到两条错误消息:
服务器发送了一条非常新的消息,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()
我在1.25.2版本中也遇到了同样的问题。解决办法,在Windows时间设置中,启用自动设置时间和时区
如果您使用 WSL(适用于 Linux 的 Windows 子系统)来运行使用 Telethon 的 Python 代码,则在 Windows 中的“时间和语言”>“日期和时间”设置下启用“自动设置时区”仍然至关重要,以避免“服务器发送了一条非常新的消息(..)被忽略”问题。
我尝试从 Telegram 桌面应用程序终止会话,更改 https://my.telegram.org 中的应用程序名称(及其简称)等,这是唯一对我有用的解决方案!
每次运行脚本时,都会在当前目录中创建一个新的
.session
文件。删除这些文件允许您重复使用相同的会话名称。这应该可以解决问题。
关于如何写出好的答案
您正在使用 WSL(适用于 Linux 的 Windows 子系统)来运行使用 Telethon 的 Python 代码,在 Windows 中的“时间和语言”>“日期和时间”设置下启用“自动设置时区”仍然至关重要,为了避免“服务器发送了一条非常新的消息(..)被忽略”问题。
我尝试从 Telegram 桌面应用程序终止会话,更改 https://my.telegram.org 中的应用程序名称(及其简称)等,这是唯一对我有用的解决方案!
分享 编辑 关注