如果您知道 pyrogram 是 Python 的 Telegram MTProto API 框架,您可以给它一个电话号码来创建一个作为机器人的用户帐户:
请参阅文档
当你给它一个电话号码时,电报会向你发送一个电话代码进行身份验证,你可以手动输入电话代码。您也可以通过客户端类中的 phone_code 参数自动为您的脚本提供电话代码:
请参阅客户端文档
我将我的电话号码从 node.js 脚本发送到 python 脚本,然后电报向我发送电话代码以进行验证。
但是当我发送电话代码时,它无法正常工作。实际上它再次发送电话代码
我的错误是什么?
我的 node.js 代码:
if(command == 'run cli'){
var spawn = require("child_process").spawn;
var process = spawn('python3', ["python/cli.py"]);
process.stdout.on('data', function(data) {
console.log(data.toString());
});
}
else if(command.substr(0, 9) == 'send code'){
var code = command.substr(10).trim();
var spawn = require("child_process").spawn;
var process = spawn('python3', ["python/cli_enter_code.py", code]);
process.stdout.on('data', function(data) {
console.log(data.toString());
});
}
cli.py 文件:
from pyrogram import Client
from pyrogram.raw import functions
api_id = someNumber
api_hash = "someHash"
with Client("my_account", api_id, api_hash, phone_number="my phone number") as app:
print('Bot is online...')
app.run()
cli_enter_code.py 文件:
import sys
code = sys.argv[1]
from pyrogram import Client
from pyrogram.raw import functions
api_id = someNumber
api_hash = "someHash"
with Client("my_account", api_id, api_hash, phone_number='my phone number', phone_code=code) as app:
print('Bot is online...')
app.run()