使用Telethon自动登录电报客户端(python)
我正在尝试编程一个电报机器人,它使用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正在执行。在后台使用默认值启动
文件参考:
因此,回答您的问题的方法是,不要通过客户端调用:
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)