如何使用django而不是交互式控制台登录pyrogram(客户端)?

eulz3vhy  于 11个月前  发布在  Go
关注(0)|答案(1)|浏览(90)

我想为自己创建有用的电报实用程序。第一个大问题是登录pyrogram Client(电报帐户)
我在django做了一些事情。我试着这样登录,但是我遇到了一个错误。下面是我对django的看法:

def add_telegram_account(request):
    code_sent = False
    phone_number = ''
    client_sign_in_info = {}
    two_step = False

    if 'phone' in request.GET:
        phone_number = request.GET['phone']
        client = Client(phone_number, api_id=api_id, api_hash=api_hash)
        client.connect()

        client_sign_in_info = client.send_code(phone_number=phone_number)
        code_sent = True

    if request.method == "POST" and 'code' in request.POST:
        code = request.POST['code']
        try:
            client.sign_in(phone_number, client_sign_in_info.phone_code_hash, code)
            client.send_message("me", "logged in")

        except SessionPasswordNeeded:
            two_step = True

    if request.method == "POST" and 'two_step' in request.POST:
        client.check_password(request.POST['two_step'])
        client.send_message("me", "logged in")


    return render(request, "telegram/add_telegram_account.html", {'code_sent':code_sent})

字符串
我得到了这个错误-->
There is no current event loop in thread 'Thread-1 (process_request_thread)'.

nbysray5

nbysray51#

Pyrogram Client是异步的,所以在Django视图中使用它可能会导致问题。
为了避免这个问题,你可以在Django的作用域之外运行你的Java Pyrogram Client代码,可能是在一个新的线程中,然后将结果传递回来。

相关问题