Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Twilio回调在我的.NET服务中不起作用_Asp.net_.net_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack_Twilio_Twilio Api - Fatal编程技术网 servicestack,twilio,twilio-api,Asp.net,.net,servicestack,Twilio,Twilio Api" /> servicestack,twilio,twilio-api,Asp.net,.net,servicestack,Twilio,Twilio Api" />

Asp.net Twilio回调在我的.NET服务中不起作用

Asp.net Twilio回调在我的.NET服务中不起作用,asp.net,.net,servicestack,twilio,twilio-api,Asp.net,.net,servicestack,Twilio,Twilio Api,我正在开发一个短信服务,预计将发送短信。除此之外,我需要跟踪短信的状态 我使用Twilio作为SMS提供商,使用ServiceStack实现服务层 我可以看到短信发送成功,但是,在配置的回调URL上没有收到任何响应 var message = MessageResource.Create(to: new PhoneNumber(sms.ToNumber), from: new PhoneNumber(sms.FromNumber), body: sms.MessageBody, statusCa

我正在开发一个短信服务,预计将发送短信。除此之外,我需要跟踪短信的状态

我使用Twilio作为SMS提供商,使用ServiceStack实现服务层

我可以看到短信发送成功,但是,在配置的回调URL上没有收到任何响应

var message = MessageResource.Create(to: new PhoneNumber(sms.ToNumber),
from: new PhoneNumber(sms.FromNumber),
body: sms.MessageBody,
statusCallback: new Uri("http://8754622.ngrok.io/json/oneway/TwilioCallBack"));
我已经下载了Ngrok,并运行它来映射localhost站点,使其可以从外部访问

下面是我如何处理来自Twilio的回调

public object Post(TwilioCallBack request)
{
    return _notificationProviderManager.SaveCallBackEvent(request.MessageStatus);
}

[Route("/TwilioCallBack", "POST")]
public class TwilioCallBack : INotificationCallBack
{
    public int id { get; set; }
        public string MessageStatus { get; set; }
}
虽然我可以看到短信发送到目的地号码,但我看不到在回拨级别发生任何事情

有人能提出需要做什么吗

在此方面的任何帮助都将不胜感激


谢谢

如果回调是GET,我会离开路由,并打开impl以接受任何HTTP动词,例如:

public object Any(TwilioCallBack request) { ... }

[Route("/TwilioCallBack")]
public class TwilioCallBack { ... }
由于您已经定义了自定义路由,您应该在回调中使用它(即代替预定义路由):

statusCallback: new Uri("http://8754622.ngrok.io/TwilioCallBack"));

经过多次尝试,并参考了各种帖子,我知道如果请求包含查询字符串,Twilio回调将无法正常工作

在这些情况下,Twilio reports
未能根据RFC2396分析StatusCallback URL
错误,我们可以在Twilio的调试器中看到这一错误

这篇文章简要地讨论了这个问题——有人在Github中将这个问题标记为已解决,但我仍然面临同样的问题。希望有人能看看那里


不幸的是,我不得不从回调URL中删除查询字符串参数,之后我可以看到POST请求进入并点击服务。

感谢您的回答,非常感谢。根据twilio官方文件,回调是POST。我可以确认我们从twilio得到的响应是POST,因为我在“requestbin”中检查了它。你在ngrok日志中看到回调(在ngrok运行时检查)了吗?我只是检查了日志,我在ngrok日志中没有看到回调。我还验证了如果我使用requestbin URL,我可以从Twilio收到响应,但我想使用ngrok,因为我想根据响应执行进一步的操作。此外,如果我只是在PostMan应用程序中复制粘贴Ngrok POST url,我可以看到服务被调用,代码被执行。不确定,为什么Twilio无法向Ngrok配置的URL发送响应!回调应该使用查询字符串。您能否共享导致
解析失败的
错误的URL?