C#中指定Twiml参数时Twilio CallResource.Create编译失败
问题描述
尝试按照Twilio官方文档的Call Resource API实现外呼功能,使用以下示例代码指定twiml参数发起请求:
var call = CallResource.Create( twiml: new Twilio.Types.Twiml("<Response><Say>Ahoy there!</Say></Response>"), to: new Twilio.Types.PhoneNumber("+15558675310"), from: new Twilio.Types.PhoneNumber("+15552223214") );
但在Visual Studio编译时触发错误:The best overload for 'Create' does not contain a parameter named 'twiml',想确认是遗漏配置、文档有误或已过时?
解决方案
这是因为Twilio C# SDK版本更新后,Create方法的参数名发生了变更,官方文档的示例代码没有及时同步更新。
正确实现方式
推荐:使用公开可访问的TwiML URL
将你的TwiML内容部署为公开URL(比如用Twilio自带的TwiML Bin生成),然后使用url参数替换原twiml参数:var call = CallResource.Create( url: new Uri("https://your-twiml-endpoint.example"), to: new Twilio.Types.PhoneNumber("+15558675310"), from: new Twilio.Types.PhoneNumber("+15552223214") );直接传入TwiML内容
如果不想部署外部URL,可以通过parameters字典传递Twiml参数值:var paramsDict = new Dictionary<string, string> { { "Twiml", "<Response><Say>Ahoy there!</Say></Response>" } }; var call = CallResource.Create( parameters: paramsDict, to: new Twilio.Types.PhoneNumber("+15558675310"), from: new Twilio.Types.PhoneNumber("+15552223214") );
补充说明
- 若坚持要用旧版的
twiml参数,可以降级到对应版本的Twilio C# SDK,但不推荐,建议适配最新SDK的参数规范。 - 官方文档偶尔会存在版本不同步的情况,遇到此类问题可以优先查看SDK的官方NuGet包文档或GitHub仓库的最新代码示例。
内容的提问来源于stack exchange,提问作者Brady
相关产品推荐
相关产品推荐

