使用twilio查询验证手机号码

时间:2018-05-10 01:53:55

标签: python-3.x api twilio django-2.0

我制作django webapp。在那个webapp用户可以注册电子邮件或电话号码,有时用户输入国家代码的手机号码,有时用户不输入国家代码,我需要获取用户IP地址,找到国家代码并将该号码发送到twilio查找API并验证在发送短信代码之前。

执行此操作的最佳方法是什么

    def clean_email_or_phone(self):

    bad_domains = ['']
    email_or_phone = self.cleaned_data['email_or_phone']
    if "@" in email_or_phone:
        try:
            validate_email(email_or_phone)
            email_domain = self.cleaned_data['email_or_phone'].split('@')[1]
            if email_domain in bad_domains:
                raise forms.ValidationError(validators.FREE_EMAIL)
        except forms.ValidationError:
            raise forms.ValidationError(validators.FREE_EMAIL)

        if User.objects.filter(email=email_or_phone).exists():
            raise forms.ValidationError(validators.DUPLICATE_EMAIL)
    else:

    return email_or_phone

其他部分将手机号码验证

由于

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

我建议接受两个不同表单字段中的电话号码和电子邮件,以便您可以知道您正在验证哪一个。这样,您还可以使用下拉菜单/单独字段来接受国家/地区代码。

以下是Twilio注册表单中的内容,并查看this stack overflow post有关如何在Javascript中执行此操作的信息。 input phone number

对于Lookup部分,您可以在Python中执行以下操作:

from twilio.rest import Client

# Your Account Sid and Auth Token from twilio.com/console
account_sid = 'ACa7422cb6ce587437c7ee6a183b4cb464'
auth_token = 'your_auth_token'
client = Client(account_sid, auth_token)

phone_number = client.lookups.phone_numbers(email_or_phone).fetch(type="carrier")

print(phone_number.caller_name)