Php 有没有办法以编程方式创建Twimlbin?

Php 有没有办法以编程方式创建Twimlbin?,php,twilio,twilio-twiml,Php,Twilio,Twilio Twiml,我想做一个应用程序,用户可以输入一个电话号码和一条信息,我可以让Twilio将该电话号码发送一条带有该文本的信息。我用的是一个简单的 <?xml version="1.0" encoding="UTF-8"?> <Response> <Say>Hello World</Say> <Response> 你好,世界 为了实现这一点,我尝试设置一个PHP函数,该函数接收消息并回显上面的TwiML,但从测试

我想做一个应用程序,用户可以输入一个电话号码和一条信息,我可以让Twilio将该电话号码发送一条带有该文本的信息。我用的是一个简单的

<?xml version="1.0" encoding="UTF-8"?>
    <Response>
        <Say>Hello World</Say>
    <Response>

你好,世界
为了实现这一点,我尝试设置一个PHP函数,该函数接收消息并回显上面的TwiML,但从测试中收到的电话报告应用程序失败。下面是我尝试过的PHP代码

echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<Response>";
echo "<Say>" . $_GET['message'] . "</Say>";
echo "</Response>";
echo”“;
回声“;
“回声”$_获取['message']。"";
回声“;

然而,我很容易就能得到一个TwiMLBin来处理这个(毕竟这是它的目的)。然而,环顾四周后,我找不到任何关于该站点API的信息。有人知道有没有一种方法可以通过编程创建TwiMLBin,这样我就可以为用户输入的消息创建适当的TwiMLBin,然后将Twilio函数调用指向适当的URL?

类似的方法在PHP中应该可以使用。cURL在许多编程语言中都可用,因此您可以将其反转

<?php

/* 
 * Create TWimL Bin
 */
$url = "http://twimlbin.com/create";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$html = curl_exec($ch);
$status_code = curl_getinfo($ch,CURLINFO_HTTP_CODE);

if($status_code=302 or $status_code=301){
  $TwimLBinURL = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
}
curl_close($ch);
/*
 * Update TwimL with XML
 */
$ExplodeTwimLBinURL = explode("/", $TwimLBinURL);
$TwimLBinID = $ExplodeTwimLBinURL[3];

$TwimLBinUpdateUrl = "http://twimlbin.com/".$TwimLBinID."/update";
$data = "twiml=<PUT TWIML XML HERE>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$TwimLBinUpdateUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
curl_close($ch);
echo $TwimLBinURL;
/*
 * End of TwimL Bin Creation
 */
?>


永远不要将原始文本转储到xml上下文中。很容易引入xml语法错误并消除任何期望有效xml的内容。至少你应该做
htmlspecialchars($\u GET['message'])
。嘿!正如Marc B提到的,这里的Twilio福音传道者,你检查过输出了吗?很可能是一个奇怪的字符弄乱了XML格式。另外-我不能告诉你是在发短信还是在发语音,但是标签不能和短信一起使用。