Twilio - 如何将SMS消息从我的twilio号码转发到API端点?

时间:2014-10-08 01:14:47

标签: twilio

我正在使用C#和WebAPI - 我的API设置为在POST请求中接受JSON。

我想要做的是 - 每当有人向我配置的twilio电话号码发送短信时,我想通过对我的应用程序的POST请求将此SMS消息转发给我的应用程序端点 - 类似于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("flatout2050@gmail.com", Body);
            return Request.CreateResponse(HttpStatusCode.OK, messages);
        } catch (Exception e) {
            return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
        }
    }

这是使用POSTMAN的url参数,现在测试twilio ......

1 个答案:

答案 0 :(得分:2)

Twilio传道者在这里。

通过配置Twilio电话号码消息请求URL指向您的Web API端点,转发发送到您的Twilio电话号码的SMS消息。登录您的Twilio帐户,然后打开Numbers page并单击要配置的电话号码。添加URL如下所示:

现在,当有人向您的Twilio电话号码发送短信时,Twilio将转向并向该网址发送HTTP POST请求,并发送a set of form-urlencoded values。在Web API中,您应该能够定义方法签名以匹配这些值的键,并且Model Binding将自动为您填充变量。例如,如果您想获取消息来自的电话号码和消息正文,您只需定义一个方法:

public IHttpResponseMessage Post(string From, string Body) {
   //do stuff here
   return OK();
}

您可以通过多种方式对此进行测试。一种方法是使用FiddlerPOSTman之类的工具将带有属性参数的HTTP请求发送到localhost。另一种方法是使用a tool like ngrok通过公共URL公开localhost。

希望有所帮助。