如何在Web应用程序中通过电报发送用户的消息?

时间:2018-02-07 16:18:24

标签: python django telegram

我正在尝试使用Python3.x和Django2.x创建Web应用程序。 我正在创建view以电报授权用户,但是当我获得安全代码并将其发送到函数sign_in()时,我收到错误"您还需要提供phone_code_hash。&# 34;

我不知道phone_code_hash是什么,我能在哪里得到它。

views.py:

phone_code_hash = None

def authorize_user(request):
    global phone_code_hash
    if request.method == 'POST':
        secure_code = request.POST.get('secure_code')

        phone = request.POST.get('phone')
        api_id = request.POST.get('api_id')
        api_hash = request.POST.get('api_hash')

        client = TelegramClient('spamer', api_id, api_hash)

        if secure_code:
            try:
                client.sign_in(phone, secure_code, phone_code_hash=phone_code_hash)
            except Exception as e:
                print(e)
                return JsonResponse({'status': 0, 'error': 'error'})
            return JsonResponse({'status': 2})
        client.connect()
        phone_code_hash = client.send_code_request(phone).phone_code_hash

        return JsonResponse({'status': 1})

    return render(request, 'spamer/add_user.html')

我使用telethon库进行API交互。 也许有些人知道如何授权用户并在不同的日子里多次发送消息。也许您建议更合适的库或使用urllib的API请求。 我只想授权用户并使用他向其他人发送许多消息,这是真的吗?

1 个答案:

答案 0 :(得分:0)

来自电报客户source的报价:

  

phone_code_hash:.send_code_request返回的哈希。

因此您需要在sign_up之前调用client.send_code_request(phone),这将设置hash_code automatically,或者您可以将其保存并稍后使用:

phone_code_hash = client.send_code_request(phone).phone_code_hash