twilio twiml php 未执行

twilio twiml php not executed

我想我正在尝试做一些相对简单的事情,但我无法让它工作。基本上,我想要一个 twilio 'menu'。例如。用户拨打我们的号码,我们说英语按 1 中文按 2 ... 我创建了一个 gather 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。如果您想使用 php 即时生成 TwiML,则需要将其托管在您自己的服务器上。

您可以从 TwiML bin 生成动态 TwiML,但您需要使用 Mustache 模板。

查看 Twilio's article and the Mustache pages 了解更多信息。