2014-10-08 55 views
0

我正在使用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 ...

回答

2

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(); 
} 

有很多,你可以測試這個方式。一種方法是使用像FiddlerPOSTman這樣的工具將帶有屬性參數的HTTP請求發送到本地主機。另一種方法是使用a tool like ngrok通過公共URL公開本地主機。

希望有所幫助。

+0

並且 - (對不起) - 有什麼方法可以查看Twilio在將內容發送到SMS Url時收到的回覆嗎?這樣我就可以從我的twilio儀表板中檢查HTTP 500或404等。 – SB2055 2014-10-08 02:18:13

+0

用suggetions更新了我的回答以供測試。不確定我瞭解有關JSON正文的問題,或者看到回覆。 – 2014-10-08 02:28:52

+0

這很奇怪,我刪除了我的評論,並用相同的信息更新了我的答案。我感謝幫助的人! – SB2055 2014-10-08 02:29:50