【问题标题】:Is there a way to programmatically create a Twimlbin?有没有办法以编程方式创建 Twimlbin?
【发布时间】:2014-06-30 16:29:29
【问题描述】:

我想制作一个应用程序,用户可以在其中输入电话号码和消息,我可以让 Twilio 向该电话号码发送一条消息,其中包含合成的文本。我正在使用的example of the TwiML code 很简单,例如

<?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>";

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

【问题讨论】:

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

标签: php twilio twilio-twiml


【解决方案1】:

这样的东西应该可以在 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
 */
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2013-04-02
    • 2021-08-28
    相关资源
    最近更新 更多