【发布时间】:2023-03-27 10:41:02
【问题描述】:
我们有一个 script 用于从 Telegram 频道下载文件,使用 Python 的 Telethon 库。
要创建一个Telethon 实例,我们使用TelegramClient 构造函数。此方法要求用户将他的 Telegram 号码插入控制台,然后 Telegram 发送一个安全号码,该号码应写回控制台。
这个身份验证保存在Object/File/DB中,名为session,所以在下一次执行中,TelegramClient将不再询问电话号码。
现在,我想为脚本创建一个 Docker 镜像,这意味着当用户从发布的镜像创建一个容器时,他必须进行身份验证过程,这就是问题:
我们必须通过哪些方式尽可能自动地执行此身份验证?
我们可以使用 Docker 技巧、Telegram/Telethon 技巧,也许还有 Python 技巧……
【问题讨论】:
-
您的会话存储在 sqlite 数据库中。如果您将其作为容器的一部分,则无需再次进行身份验证。唯一的问题是您不能在多个不同的 IP 上运行会话。这意味着使用您容器的人将需要以交互模式 (-it) gist.github.com/mitchwongho/11266726 使用它来提供凭据
-
我认为这就是我在回答中所写的。但在我的回答中,我也尝试为 docker compose 和多实例解决这个问题,这就是我建议卷的原因。
标签: docker docker-compose telegram two-factor-authentication telethon