twilio-csharp
适用于.NET的Twilio REST API和TwiML库
Twilio提供了一个基于HTTP的API,用于发送和接收电话和短信。在twilio.com上了解更多信息。
本库的更多文档可以在这里找到。
版本
twilio-csharp
对所有变更使用修改版的语义化版本控制。查看此文档了解详情。
从早期版本迁移
请参阅此处的迁移指南。另外,如果你之前使用Twilio.Mvc
包,它已被Twilio.AspNet.Mvc包取代,该包与本库的这个版本兼容。
TLS 1.2要求
新账户和子账户现在需要使用TLS 1.2访问REST API。"需要升级"错误表示正在使用TLS 1.0/1.1。在.NET中,你可以使用以下设置启用TLS 1.2:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
支持的.NET版本
本库支持使用.NET6+的.NET应用程序。
安装
将Twilio库添加到你的.NET项目的最佳和最简单的方法是使用NuGet包管理器。
使用Visual Studio IDE
在Visual Studio中,你可以使用NuGet GUI搜索并安装Twilio NuGet包。或者,作为快捷方式,只需在包管理器控制台中输入以下命令:
Install-Package Twilio
使用.NET Core命令行工具
如果你使用.NET Core命令行工具构建,那么可以在项目目录中运行以下命令:
dotnet add package Twilio
使用示例
以下示例展示了如何使用Twilio .NET辅助库让你的应用程序发起外呼电话和发送短信:
TwilioClient.Init("ACCOUNT_SID", "AUTH_TOKEN");
var call = CallResource.Create(
new PhoneNumber("+11234567890"),
from: new PhoneNumber("+10987654321"),
url: new Uri("https://my.twiml.here")
);
Console.WriteLine(call.Sid);
var message = MessageResource.Create(
new PhoneNumber("+11234567890"),
from: new PhoneNumber("+10987654321"),
body: "你好世界!"
);
Console.WriteLine(message.Sid);
指定地区和/或边缘
要利用Twilio的全球基础设施,为客户端指定目标地区和/或边缘:
TwilioClient.SetRegion("au1");
TwilioClient.SetEdge("sydney");
这将使hostname
从api.twilio.com
转变为api.sydney.au1.twilio.com
。
启用调试日志
在默认HTTP客户端中启用调试日志有两种方法。你可以创建一个名为TWILIO_LOG_LEVEL
的环境变量并将其设置为debug
,或者可以在客户端上将LogLevel变量设置为debug:
TwilioClient.SetLogLevel("debug");
处理异常
关于如何在此辅助库中处理异常的示例,请参阅Twilio文档。
生成TwiML
要控制电话呼叫,你的应用程序需要输出TwiML。
// TwiML类可以作为独立元素创建
var gather = new Gather(numDigits: 1, action: new Uri("hello-monkey-handle-key.cshtml"), method: HttpMethod.Post)
.Say("要与真实的猴子通话,请按1。按2录制你自己的猴子嚎叫。按任何其他键重新开始。");
// 属性可以直接在对象上设置
gather.Timeout = 100;
gather.MaxSpeechTime = 200
// 可以通过调用set/getOption设置任意属性
var dial = new Dial().SetOption("myAttribute", 200)
.SetOption("newAttribute", false);
// 或者可以使用辅助方法直接创建并附加到响应中
var response = new VoiceResponse()
.Say("你好,猴子")
.Play(new Uri("http://demo.twilio.com/hellomonkey/monkey.mp3"))
.Append(gather)
.Append(dial);
// 将TwiML对象序列化为XML字符串
Console.WriteLine(response);
/*
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Say>你好,猴子</Say>
<Play>http://demo.twilio.com/hellomonkey/monkey.mp3</Play>
<Gather numDigits="1" action="hello-monkey-handle-key.cshtml" method="POST" timeout="100" maxSpeechTime="200">
<Say>要与真实的猴子通话,请按1。按2录制你自己的猴子嚎叫。按任何其他键重新开始。</Say>
</Gather>
<Dial myAttribute="200" newAttribute="false"></Dial>
</Response>
*/
使用自定义HTTP客户端
要在此辅助库中使用自定义HTTP客户端,请参阅如何实现的高级示例。
Docker镜像
本仓库中的Dockerfile
及其相应的twilio/twilio-csharp
Docker镜像由Twilio用于测试目的。
你可以使用Docker镜像进行构建和运行测试:
docker build -t twiliobuild .
Bash:
docker run -it --rm -v $(pwd):/twilio twiliobuild
make test
Powershell:
docker run -it --rm -v ${PWD}:/twilio twiliobuild
make test
获取支持
如果你在安装或使用库时需要帮助,请先查看Twilio支持帮助中心,如果没有找到问题的答案,请提交支持工单。
如果你发现了库中的bug或想添加新功能,请随时在此仓库中提出问题或提交拉取请求!