.NET Framework 4.8中Telnyx出站SMS示例代码无法运行求助
解决方案
1. 问题根源:SDK版本不兼容
你遇到的编译错误是因为使用了TELNYX.NET SDK v2.x及以上版本,但参考的是旧版(v1.x)的示例代码。新旧版本API结构差异显著:
- 旧版(v1.x):使用静态
Message.Create方法和MessageOptions类 - 新版(v2.x+):改用
TelnyxClient实例调用服务,对应选项类为SmsMessageCreateOptions
2. 适配新版SDK的代码修改
2.1 补充必要命名空间
确保添加以下引用:
using Telnyx; using Telnyx.Messaging; using System; using System.Collections.Generic;
2.2 修正发送逻辑
新版SDK需要先初始化客户端,再调用消息创建方法:
// 初始化Telnyx客户端(建议全局单例使用) var telnyxClient = new TelnyxClient(apiKey: "KEY01939D9F6C479B1E4A0FBF905CCC05BD_HjBhvrJVXllCBR1YTgjt0b"); // 构建SMS发送参数 var sendOptions = new SmsMessageCreateOptions { From = "+18445550001", // 移除多余的转义符\ MessagingProfileId = Guid.Parse("abc85f64-5717-4562-b3fc-2c9600000000"), To = tmpPhone, Text = the_message, Subject = "VIJILCON ALERT", MediaUrls = new List<string> { "http://example.com" }, WebhookUrl = new Uri("https://www.vijilcomm.com/webhooks1"), WebhookFailoverUrl = new Uri("https://www.vijilcomm.com/webhooks2"), UseProfileWebhooks = false, Type = SmsMessageType.Sms // 使用枚举替代字符串常量 }; // 同步发送消息(异步场景请用CreateAsync并添加await) var sentMessage = telnyxClient.Messages.Create(sendOptions);
2.3 关键变更点
- 移除
TelnyxConfiguration.SetApiKey,改为在TelnyxClient实例化时传入API密钥 MessageOptions替换为SmsMessageCreateOptions,部分属性类型调整(如WebhookUrl改为Uri类型)- 静态方法
Message.Create改为通过客户端的Messages服务调用Create/CreateAsync - 电话号码无需转义,直接使用
"+1xxxxxx"格式 - 消息类型使用枚举
SmsMessageType.Sms而非字符串"SMS"
3. 额外排查步骤
- 若仍提示类型缺失,清理并重新生成项目(菜单栏→生成→清理解决方案,再重新生成)
- 确认TELNYX.NET包已正确安装到当前项目(而非解决方案内其他项目)
- 检查是否存在命名冲突(如自定义了
Message类,可改用全限定名Telnyx.Messaging.Message) - 验证.NET Framework 4.8兼容性:TELNYX.NET v2.x+支持4.6.1及以上版本,4.8完全兼容
内容的提问来源于stack exchange,提问作者Matt Schwartz
相关产品推荐
相关产品推荐

