【发布时间】:2017-08-04 03:47:17
【问题描述】:
我想我正在尝试做一些相对简单的事情,但我无法让它发挥作用。基本上,我想要一个 twilio '菜单'。例如。用户拨打我们的号码,我们说按 1 输入英文 2 输入中文... 我创建了一个收集 twiml:
<Response>
<Gather numDigits="1" action="https://handler.twilio.com/twiml/XXX">
<Say voice="alice">For English, press 1 now.</Say>
<Say voice="alice"> For Chinese, press 2 now. </Say>
</Gather>
</Response>
这行得通,我被重定向到我的第二个 twiml(用一个简单的响应测试,比如 twiml),但这里是出错的地方。 在我的第二个脚本中,如果我添加任何 php,它就不再起作用。基本上,我想重定向到另一个 twiml,根据拨打的号码以正确的语言说出正确的回复。 我的 twiml 看起来像这样(所以这就是我在 twimlbin 中的字面意思):
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;
$digits = $_REQUEST['Digits'];
switch ($digits) {
case 1:
$response = new Twiml();
$response->redirect('http://pigeons.com/twiml.xml', ['method' => 'POST']);
echo $response;
break;
case 2:
$response = new Twiml();
$response->redirect('http://pigeons.com/twiml.xml', ['method' => 'POST']);
echo $response;
break;
default:
echo '<Response>';
echo '<Say>Sorry, your response was invalid.</Say>';
echo '</Response>';
}
?>
但是,当我有这个时,什么也没有发生。 我不排除脚本错误,但我随后将 twiml 更改为:
<?php
header("content-type: text/xml");
?>
<Response>
<Say><?php echo "Test"?></Say>
</Response>
但是,当我拥有这个脚本时,我仍然什么也听不到,也没有在调试器日志中看到任何内容。我对 Twilio 完全陌生,所以我可能会遗漏一些简单的东西,但我似乎无法弄清楚。
所以我的问题是,为什么这在 twiml 中不起作用? 如果可能的话,我的重定向脚本看起来还可以吗?
【问题讨论】:
-
您的 twiML 是否在可以执行 PHP 的服务器上?它是否返回 xml 标头
<?xml version="1.0" encoding="utf-8"?>?您应该使用Twiml()对象来生成它
标签: twilio twilio-php