我正在尝试使用TwiML(上传,转换然后)播放Twilio语音邮件的.aifc格式欢迎问候语,然后再记录来自呼叫者的任何消息。我目前的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Play>
https://drive.google.com/file/*********
</Play>
<Say>
Press * or hang up when you have finished recording.</Say>
<Record action="http://foo.edu/handleRecording.php" method="GET" maxLength="45" finishOnKey="*"/>
</Response>
在我尝试使用<Play>
函数之前,代码已经运行..让我想知道是否在Google云端硬盘上托管文件是个问题。以前我使用<Say>
,但那听起来很裤子。
任何建议都很受欢迎。
答案 0 :(得分:0)
Twilio开发者传道者在这里。
要让Twilio能够播放文件,必须在浏览器中访问此文件,并且无需在屏幕上进行任何形式的登录或确认。
此类文件的一个示例是:https://api.twilio.com/cowbell.mp3。
但是在这里你可以测试它:
在您的终端中(假设您已安装curl)运行:
curl -v https://api.twilio.com/cowbell.mp3
这将输出一堆二进制信息,用于您的音乐文件。
如果您然后将相同的MP3文件上传到Google云端硬盘并尝试对可共享的网址执行相同操作,则会看到返回的是HTML文件。事实上,一个很老的HTML文件。
Twilio正在获取该文件,从而返回错误&#34; TwiML响应体太大 - 错误 - 11750&#34;因为它试图将HTML返回到你的TwiML。
希望这对你有所帮助。
答案 1 :(得分:0)
我遇到了同样的错误,音频文件为https://api.twilio.com/cowbell.mp3
,并且xml响应小于1KB,并且我使用Twilio PHP SDK和此代码来生成xml和标头类型为“ text / xml”。
$response = new VoiceResponse();
$response->play('https://api.twilio.com/cowbell.mp3');
对我有用的是将$response
(由php sdk生成的xml)保存在文件voice.xml
中,并在调用时使用该文件的url。