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