我使用Twilio在我的应用中发送短信验证。我只是使用Twilio REST API为每个用户发送一条SMS。
然而,在推出后,我们收到了一些国际用户的投诉。他们从未收到短信。
实施几乎无处不在的SMS /语音验证的最佳方法是什么?
是的,我的Twilio帐户启用了国际短信。
def sendByTwilio(phone, verificationCode):
try:
account_sid = "XXXXX"
auth_token = "XXXXXX"
client = TwilioRestClient(account_sid, auth_token)
rv = client.sms.messages.create(to="phone",
from_="XXXXXXXXXX",
body="Your verification code is "+str(verificationCode))
return True
except TwilioRestException, e:
pass
return False
答案 0 :(得分:2)
Twilio开发者传道者在这里。
Kamran是对的,您应该在帐户中查看您的国际许可。
另一件事是您正在使用SMS/Messages resource which has been deprecated。如果您将代码更新为:
rv = client.messages.create(to="phone",
from_="XXXXXXXXXX",
body="Your verification code is "+str(verificationCode))
然后您将使用较新的Messages资源。
答案 1 :(得分:1)
您是否启用了地理位置?如果没有,您必须从twilio帐户设置启用它。你应该为TwilioException做一些日志记录。可能数字可能没有前缀+符号导致问题
答案 2 :(得分:1)
有几个原因导致短信可能无法在国际地区工作。 Twilio在某些地方工作得很好但不是到处都是。在印度,它们非常有限,不建议使用它们 - https://www.twilio.com/help/faq/sms/are-there-limitations-on-sending-sms-messages-to-indian-mobile-devices。
我不认为API版本会改变SMS的可传递性,当您走向国际时,确保收到SMS的障碍超出了SMS网关。有关改善全球短信接收的更多信息,请阅读此内容check out this。