Twilio - 如何将SMS消息从我的twilio号码转发到API端点?
我正在使用C#和WebAPI - 我的API设置为接受POST请求中的JSON。Twilio - 如何将SMS消息从我的twilio号码转发到API端点?
我想要做的是 - 每当有人发送短信给我已配置的twilio电话号码,我想通过POST请求将此短信转发给我的应用程序到我的应用程序的端点 - 类似example.com/smsfromtwilio
- 以便我的应用程序可以分析短信的正文并记录发件人的电话号码。
我试图通读文档,但没有看到如何做到这一点的清晰的例子。
到目前为止,当我准备我的电话号码,我有以下几点:
var twilio = new TwilioRestClient(accountSid, authToken);
var options = new PhoneNumberOptions {
PhoneNumber = targetNumber,
SmsUrl = "example.com/smsfromtwilio"
};
var number = twilio.AddIncomingPhoneNumber(options);
即使这是采取正确的方向,我不知道是什么格式对输入JSON数据将是我的API端点。是否有任何文件解释如何实现这种情况?
此外 - 是否有一个'短信转发'的JSON负载的例子,所以我可以为我的API设置测试?
更新
我的控制器:
[HttpPost]
[Route("api/sms")]
public HttpResponseMessage Subscribe(string From, string Body) {
try {
var messages = _messageService.SendMessage("[email protected]", Body);
return Request.CreateResponse(HttpStatusCode.OK, messages);
} catch (Exception e) {
return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
}
}
这是工作与邮差URL参数,现在来测试twilio ...
Twilio传道这里。
要发送发送到您的Twilio电话号码的SMS消息,您将首先配置您的Twilio电话号码Message Request Url指向您的Web API端点。登录到您的Twilio帐户,然后打开Numbers page并单击您想要配置的电话号码。添加URL,如下图所示:
现在,当有人发送短信到您的Twilio电话号码,Twilio将扭亏为盈,并和HTTP POST请求到URL,沿a set of form-urlencoded values发送。在Web API中,您应该能够定义一个方法签名来匹配这些值的键,Model Binding会自动为您填充变量。例如,如果你想抓住的消息来自电话号码和邮件正文你只定义等的方法:
public IHttpResponseMessage Post(string From, string Body) {
//do stuff here
return OK();
}
有很多,你可以测试这个方式。一种方法是使用像Fiddler或POSTman这样的工具将带有属性参数的HTTP请求发送到本地主机。另一种方法是使用a tool like ngrok通过公共URL公开本地主机。
希望有所帮助。
并且 - (对不起) - 有什么方法可以查看Twilio在将内容发送到SMS Url时收到的回复吗?这样我就可以从我的twilio仪表板中检查HTTP 500或404等。 – SB2055 2014-10-08 02:18:13
用suggetions更新了我的回答以供测试。不确定我了解有关JSON正文的问题,或者看到回复。 – 2014-10-08 02:28:52
这很奇怪,我删除了我的评论,并用相同的信息更新了我的答案。我感谢帮助的人! – SB2055 2014-10-08 02:29:50