首页 > 解决方案 > 通过会话文件的存在进行 Telethon 客户端登录不适用于 plesk 计划任务,但它通过 SSH 正常运行

问题描述

我有一个在 plesk (debian 10) 上运行的 VPS。我已经使用 Telethon 创建了一个用于电报的 python 脚本。

我第一次使用 ssh 运行脚本,以便输入手机上收到的代码,这样它就创建了一个 .session 文件,并且不需要代码以供将来执行。

该脚本按预期执行,并且不再需要代码验证,因为 .session 文件存在于目录中。

我尝试通过 plesk 为脚本安排一个 cron 任务,但它不起作用,脚本的行为就像它需要代码一样,而且我在手机上收到代码验证,所以它表现得好像 .session 文件不是那里。

from telethon.sync import TelegramClient
api_id = 'xxxxxx'
api_hash = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
phone = '+1xxxxxxx' #the same as session name: '+1xxxxxxxx.session'

client = TelegramClient('+15812571726', api_id, api_hash)

client.connect()

if not client.is_user_authorized():
    client.send_code_request(phone)
    client.sign_in(phone, input('Enter the code: '))

....do stuff

有谁知道为什么会失败?我可以在调用之前加载会话,client.connect()所以我确定它已经加载了吗?

非常感谢您的帮助。

标签: python-3.xsshplesktelethon

解决方案


该问题很可能是路径问题。尝试使用绝对路径,因为会话文件是在调用脚本的文件夹中创建的。


推荐阅读