我使用此命令拨打电话。我在亚马逊s3中托管了xml并将其公之于众。电话说,"抱歉,发生了应用程序错误。请帮忙
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>
答案 0 :(得分:2)
您可以使用浏览器检查S3提供的内容。
您需要确保S3将您的xml作为"content-type"
的{{1}}并且"text/xml"
确实位于响应的第一行。
同时检查Twilio呼叫日志以进行逐步调试,您应该看到有关错误的http请求的更多信息,其中包含S3的响应标头和内容类型。
出于测试目的,您还可以使用TwiML Bins
,您可以在“工具”&gt;下的左侧菜单中找到它们。 “开发者中心”。使用您的xml在那里创建一个bin,您将获得一个可以使用的URL,而不是您的S3 URL。
TwiML Bins在第一行不需要<?xml version="1.0" encoding="UTF-8"?>
,只需将xml放在那里。