我有几个电报帐户,在启动时,有些帐户被要求输入数据。如何跳过此输入以使脚本继续运行?
我的例子不起作用
for f in glob.iglob("*.session"): # generator, search immediate subdirectories
print(f.rsplit('.', 1)[0])
name_file = f.rsplit('.', 1)[0]
try:
client = TelegramClient(session=name_file, api_id=api_id, api_hash=api_hash)
await send_mes_to_users(client)
except errors.rpcerrorlist.PhoneNumberInvalidError:
print('fail session')
continue
终于,我找到了解决办法。您需要进入虚拟环境,找到 Telethon 文件夹,打开 client 文件夹,打开 auth.py,并将 input() 替换为空字符串 ''。它不会破坏任何东西;它只会跳过无效的会话。
完成
try:
client = TelegramClient(session=name_file, api_id=api_id, api_hash=api_hash)
await client.connect()
if not await client.is_user_authorized():
print("Error authorisation")
continue
await send_mes_to_users(client)
except errors.rpcerrorlist.PhoneNumberInvalidError:
print('fail session')
continue