使用Telethon自动登录电报客户端(python)

使用Telethon自动登录电报客户端(python),python,telegram,telegram-bot,python-telegram-bot,telethon,Python,Telegram,Telegram Bot,Python Telegram Bot,Telethon,我正在尝试编程一个电报机器人,它使用Telethon库访问电报客户端。 在下面的代码中,一切都正常工作,但在运行代码时,电报验证过程通过终端运行。 有没有一种方法可以自动化这个过程,这样我就可以用Python登录客户端(而不必在终端上键入) 验证过程要求: 电话号码 密码 安全代码 我试图实现的是,当用户调用某个命令时,bot启动客户机登录过程,并要求用户输入密码和安全代码,而不是用于登录客户机。bot将使用python电报bot库来管理与用户的对话,而它将使用Telethon库来连接到客户

我正在尝试编程一个电报机器人,它使用Telethon库访问电报客户端。 在下面的代码中,一切都正常工作,但在运行代码时,电报验证过程通过终端运行。 有没有一种方法可以自动化这个过程,这样我就可以用Python登录客户端(而不必在终端上键入)

验证过程要求:

  • 电话号码
  • 密码
  • 安全代码
我试图实现的是,当用户调用某个命令时,bot启动客户机登录过程,并要求用户输入密码和安全代码,而不是用于登录客户机。bot将使用python电报bot库来管理与用户的对话,而它将使用Telethon库来连接到客户端。 这可能吗? 多谢各位

以下是主文件:(一个工作测试示例,在使用python Telegrame bot时尝试登录Telethon Telegrame客户端)

使用上述代码,我在终端中收到以下程序:

  • 请输入您的手机(或机器人令牌):
  • 请输入您收到的代码:
  • 请输入您的密码:

您可以通过多种方式完成,最简单的方法是
。开始

当您对客户端执行
操作时:
telethon正在执行
。在后台使用默认值启动

文件参考:

因此,回答您的问题的方法是,不要通过客户端调用

await client.start(phone=your_phone_callback,password=your_password_callback,code_callback=your_code_callback)

它们都需要是返回字符串或字符串的可调用函数。

验证用户身份的另一种方法是使用
发送\u代码\u请求
登录
方法

作为一个完整的例子:

async def main():
    client = TelegramClient('anon', api_id, api_hash)
    assert await client.connect()
    if not client.is_user_authorized():
        await client.send_code_request(phone_number)
        me = await client.sign_in(phone_number, input('Enter code: '))
但是,所有这些都可以通过调用.start()来完成:

显示的代码正是
.start()
在幕后要做的事情 (再加上一些额外的检查),这样你就知道如何签名以备不时之需 要避免出于任何原因使用
input()
(默认设置)


全面阅读本节,了解如何处理边缘情况,例如需要密码时。

您可能希望在身份验证过程中使用bot\u令牌,这是对电话号码的补充

bot = await TelegramClient(username, api_id, api_hash).start(bot_token=token, max_attempts=10)
async def main():
    client = TelegramClient('anon', api_id, api_hash)
    await client.start()
bot = await TelegramClient(username, api_id, api_hash).start(bot_token=token, max_attempts=10)