У меня есть очень простое приложение, где пользователь приветствуется и имеет возможность выбрать 1 или 2 и отправить его в сценарий обратного вызова. Он выдает мне сообщение «Приложение обнаружило ошибку» при каждом прохождении первого меню.
Мой сценарий выглядит следующим образом:
<?php
// make an associative array of callers we know, indexed by phone number
$people = array(
"+15559990000"=>"A" );
// if the caller is known, then greet them by name
// otherwise, consider them just another caller
if(!$name = $people[$_REQUEST['From']])
$name = "caller";
// now greet the caller
header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
<Gather action="process.php" numDigits="1">
<Say>Hello <?php echo $name ?>. Welcome to Choons by Yo-say.</Say>
<Say>To continue as <?php echo $name ?>, press 1.</Say>
<Say>If you are using a different number but would like to access your account, press 2</Say>
</Gather>
<!-- If customer doesn't input anything, prompt and try again. -->
<Say>Sorry, I didn't get your response.</Say>
</Response>
Итак, скрипт process.php выглядит так:
<?php
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<Response>';
# @start snippet
$user_pushed = (int) $_REQUEST['Digits'];
# @end snippet
if ($user_pushed == 1)
{
echo '<Say>You pressed 1</Say>';
}
if ($user_pushed == 2)
{
echo '<Say>You pressed 2</Say>';
}
else {
// We'll implement the rest of the functionality in the
// following sections.
echo "<Say>Sorry, I can't do that yet.</Say>";
echo '<Redirect>mine-or-not.php</Redirect>';
}
echo '</Response>';
?>
Когда я подключаюсь к своему демо-счету, он успешно проходит весь первый скрипт. Но при нажатии «1» или «2» он просто говорит: «Извините, приложение обнаружило ошибку». Кто-нибудь может определить мою ошибку?
Евангелист Твилио здесь.
Есть несколько советов по отладке:
Проверить Монитор приложений чтобы увидеть, что захватывает Twilio, когда пытается отправить запрос на ваш сайт. Часто это даст вам достаточно информации, чтобы выяснить, что происходит. Монитор приложений также позволяет «воспроизводить» отдельные запросы веб-крюка, отправляя те же параметры, что и исходные, чтобы помочь вам диагностировать сбои.
Попробуйте загрузить свои файлы PHP в браузер или использовать инструмент, подобный обманщик или же Почтальон для имитации HTTP-запросов Twilio-запросов. Это позволит вам использовать свой код, отправляя к ним HTTP-запросы так же, как это делает Twilio, но вы можете видеть ответ, отправленный вашим приложением.
Надеюсь, это поможет.
Других решений пока нет …