我正在使用Twilio api发送SMS,并且指定了StatusCallBackUrl以在发送SMS后从Twilio获取响应。
我一直在使用的凭证不是测试凭证。
我想知道我在哪里做错了,因为在发送SMS后,我没有收到Twilio的响应,但是,我启用了跨域接受Twilio的响应。
我只是控制台响应,以便知道响应的结构是什么以及发送数据的模型。

这是我的示例回调URL:

public const String callBackUrl = "http://example.com/api/Reports/ProcessSmsResponse";


这就是我通过Twilio发送SMS的方式:

twilio = new Twilio.TwilioRestClient(this.TwilioAccount, this.TwilioAuthToken);

var message = twilio.SendMessage("+965478", "+987456", "test body", callBackUrl);


此方法仅打印SMS回调响应:

[HttpPost]
public void ProcessSmsResponse()
{
    Logger.WriteLog(LogLevel.INFO, "ProcessSmsResponse");
    Logger.WriteLog(LogLevel.INFO, Request.Content);
}

最佳答案

我以适当的方式处理请求结果,正确的方式是:

string queryString = Request.Content.ReadAsStringAsync().Result;


这将返回Twilio发布到我的操作作为回调响应的queryString。此外,我只是解析查询字符串以获取查询字符串参数

var data = HttpUtility.ParseQueryString(queryString);


这些是我在Twilio SMSCallBack响应中得到的参数:
收件人,正文,SmsSid,SmsStatus,MessageSid,AccountSid,ApiVersion,
MessageStatus,ErrorCode(如果有任何错误,我们将获取此参数,它将是可选的)

有关ErrorCode,请参考此link

关于c# - Twilio中的SMS状态回调响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35355278/

10-14 12:00