Должен ли я всегда использовать поле `url` для исходящих звонков с Twilio API в Python? - PullRequest
1 голос
/ 11 ноября 2019

Я пытался выяснить, как сделать исходящий вызов, чтобы оставить голосовую почту при обнаружении автоответчика. Я все еще в начале исследования и пытаюсь следовать примеру Twilio, например this . Я хочу использовать Python, поэтому скопирую пример из Twilio ниже:

# Download the helper library from https://www.twilio.com/docs/python/install
from twilio.rest import Client


# Your Account Sid and Auth Token from twilio.com/console
# DANGER! This is insecure. See http://twil.io/secure
account_sid = 'your account sid'
auth_token = 'your_auth_token'
client = Client(account_sid, auth_token)

call = client.calls.create(
                        url='http://demo.twilio.com/docs/voice.xml',
                        to='+1555123456',
                        from_='+1501123456'
                    )

print(call.sid)

В приведенном выше коде похоже, что Python SDK Twilio всегда ожидает url (общедоступный файл XML /ответ) как ресурс для пинга. Мне интересно, смогу ли я создать действительный файл XML (TwiML) и сослаться на него в приведенном выше вызове client.calls.create(...). Другими словами, как мне заставить Twilio «говорить» о том, что я разработал в моем локальном (на моем компьютере) XML-файле (если это вообще возможно)? Я планирую запускать сценарий Python с моего персонального компьютера только по мере необходимости, и я нигде не имею доступа к серверу.

Заранее благодарю за ответ / предложение!

Ответы [ 2 ]

2 голосов
/ 11 ноября 2019

Общедоступный URL-адрес является обязательным. Вы можете использовать Twilio Studio или Twilio Serverless Functions , если вы хотите, чтобы Twilio содержала вашу логику, поэтому вам не нужно предоставлять публичный URL.

Для разработки,Вы можете использовать инструмент под названием Ngrok , который будет туннелировать запрос Twilio TwiML к вашему частному приложению.

Более подробную информацию можно найти здесь.

Каклокально тестируйте webhooks с помощью ngrok - Совет № 6

1 голос
/ 11 ноября 2019

Ну, вы можете проверить это с помощью простого http-сервера pythons. и просто сделайте так, чтобы этот файл был на сервере.

curl http://demo.twilio.com/docs/voice.xml -o voice.xml
python -m SimpleHTTPServer 
#run to above commands then
#try using bellow?
call = client.calls.create(
                    url='http://localhost:8000/voice.xml',
                    to='+1555123456',
                    from_='+1501123456'
                )
#the file at that location is dead simple
<Response>
<Say voice="alice">Thanks for trying our documentation. Enjoy!</Say>
<Play>http://demo.twilio.com/docs/classic.mp3</Play>
</Response>
...