Я пытаюсь отправить пользователю пользовательское SMS через twilio, но получаю ошибку SSL
Вот как я это делаю. Когда я пробую этот код
message = twilio_client.messages.create(
body=f"Your OTP is: {new_otp}",
from_=settings.TWILIO_PHONE_NUMBER,
to=to_phone_number
)
где находится twilio_client
twilio_client = Client(
settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN, region = "ap1"
)
Я получаю следующую ошибку после запуска этой части кода
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.ap1.twilio.com', port=443): Max retries exceeded
with url: /2010-04-01/Accounts/AC871e4afa1d16f5f1a892a7af250eabf2/Messages.json
(Caused by SSLError(SSLCertVerificationError(1, "[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: Hostname mismatch,
certificate is not valid for 'api.ap1.twilio.com'. (_ssl.c:1007)")))
основываясь на онлайн-исследованиях, я проверил URL-адрес, на который ссылается эта часть, то есть
https://api.ap1.twilio.com/2010-04-01/Accounts/AC871e4afa1d16f5f1a892a7af250eabf2/Messages.json
но когда я проверяю почтальона, он дает мне ответ 404 не найден
Если я правильно понимаю структуру сетей SAN, поддерживаются только регионы us1
, au1
и ie1
. Смотрите эту статью
Нашел решение, я только что удалил регион = "ap1" из twilio_client, теперь он работает правильно, вместо
twilio_client = Client(
settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN, region = "ap1"
)
использовать
twilio_client = Client(
settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN
)
существует несоответствие имени хоста и недействительного сертификата, как указано в ошибке. См. эту документацию help.twilio.com/articles/…