Twilio 调用说发生了应用程序错误

Twilio call says an application error has occured

我正在使用此命令拨打电话。我在 amazon s3 中托管了 xml 并使其成为 public。来电显示,“抱歉,出现应用程序错误。请帮助

curl -XPOST https://api.twilio.com/2010-04-01/Accounts/kjfwbkjfejbfgeirbgiregribg/Calls.json -d "Url=http://read-voice.xyz.s3-website-us-east-1.amazonaws.com/voice.xml" -d "To=%2B1234567812" -d "From=%2B1234567812" -u 'ssllsdnf wfwefklwefwefwef:wjfdbewfergergerg'

这是XML

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="alice">Thanks for trying our documentation. Enjoy!</Say>
</Response>

这是调试器的错误

<Html>
<Head>
    <Title>405 Method Not Allowed</Title>
</Head>
<Body>
    <H1>405 Method Not Allowed</H1>
    <Ul>
        <Li>Code: MethodNotAllowed</Li>
        <Li>Message: The specified method is not allowed against this resource.</Li>
        <Li>Method: POST</Li>
        <Li>ResourceType: OBJECT</Li>
        <Li>RequestId: xyxafsgjsk</Li>
        <Li>HostId: xyzt8=</Li>
    </Ul>
    <Hr/>
</Body>

您可以使用浏览器检查您的 S3 服务内容。

您需要确保 S3 将您的 xml 作为 "text/xml""content-type" 提供,并且 <?xml version="1.0" encoding="UTF-8"?> 确实位于响应的第一行。

同时检查 Twilio 调用日志以进行逐步调试,您应该会看到有关给您错误的错误 http 请求的更多信息,包括 S3 的响应 headers 和内容类型。

出于测试目的,您还可以使用 TwiML Bins,您可以在 "Tools" > "Developer Center" 下的左侧菜单中找到它们。用你的 xml 创建一个垃圾箱,你会得到一个 url 你可以用来代替你的 S3 url.

TwiML Bins 在第一行不需要 <?xml version="1.0" encoding="UTF-8"?>,只需将 xml 放在那里。