我制作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
其他部分将手机号码验证
由于
答案 0 :(得分:1)
Twilio开发者传道者在这里。
我建议接受两个不同表单字段中的电话号码和电子邮件,以便您可以知道您正在验证哪一个。这样,您还可以使用下拉菜单/单独字段来接受国家/地区代码。
以下是Twilio注册表单中的内容,并查看this stack overflow post有关如何在Javascript中执行此操作的信息。
对于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)