Я пытаюсь написать скрипт Twilio для передачи голоса без рельсов - я хотел бы иметь возможность запускать скрипт прямо с моего терминала.Использование Twilio/XML без Rails
У меня есть очень простой сценарий, прямо из twilio-rb
драгоценных документов:
# This should be in an initializer or similar
Twilio::Config.setup \
:account_sid => account,
:auth_token => token
Twilio::Call.create :to => '+1234567890', :from => '+0987654321',
:url => xml_file
xml_file
является XML-файл на моей локальной машине, но он выдает эту ошибку:
Error #21205: Url is not a valid url
Как я могу написать вышеприведенный скрипт для работы с локальным xml-файлом? Конечная цель состоит в том, чтобы сделать телефонный звонок, воспроизвести звуковое сообщение, набрать кнопку и выполнить действие на основе полученного номера. XML-файл Twiml должен сделать это для меня, если я могу заставить его работать.
EDIT:
При использовании ссылки раздаточной акций, я получаю эту ошибку в пределах интерфейса Twilio:
'Twilio is unable to process the Content-Type of the provided URL. Please see the Twilio Markup XML Documentation for more information on valid Content-Types.
You must return a Content-Type for all requests. Requests without a Content-Type will appear in the Debugger as a 502 Bad Gateway error.
Having a phone number, outgoing call request or action attribute refer to a non XML or audio resource.
Having a Play verb attempt to play non-audio content, such as XML or text.
Verify that that your web server is returning a Content-Type and it is the expected value
Make sure the URL noted refers to a valid resource'
Чтобы убедиться, я скопировал пример я знаю, буду работать в мой файл XML:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="man">Hey man! Listen to this!</Say>
<Play>http://foo.com/cowbell.mp3</Play>
<Say voice="man">What did you think of that?!</Say>
<Record action="http://foo.com/handleRecording.php" method="GET" maxLength="20" finishOnKey="*"/>
<Gather action="/process_gather.php" method="GET">
<Say>Now hit some buttons!</Say>
</Gather>
<Say voice="man">Awesome! Thanks!</Say>
<Hangup/>
</Response>
Хмм, нет кубиков. Формат имеет смысл. Это то, что я получаю в результате: ': url => 'файл: /// Пользователи/Luigi/Desktop/work/Dropbox/Twilio/xml.xml'' Но у меня по-прежнему такая же ошибка. – Luigi
Если URL-адрес должен быть общедоступным, возможно, URL-адрес, предоставленный Dropbox-> Share Link, стоит попробовать. – kjhughes
Хорошее мышление, я думаю, что это шаг вперед - он фактически делает вызов по назначению, но XML не читается - он просто записывает запись ошибок приложения, а не играет так, как должен. Я знаю, что xml действителен, поскольку я использовал один и тот же xml через twilio's «twimlets», и он отлично работает. – Luigi