【问题标题】:Receive SMS using Twilio and asp.net Webforms使用 Twilio 和 asp.net Webforms 接收 SMS
【发布时间】:2021-11-10 20:46:11
【问题描述】:

Twilio 文档为 asp.net MVC 提供了指南,但不为 webforms 提供指南。我可以毫无问题地发送 SMS 消息,但接收 SMS 回复是我卡住的地方。我发现建议 webforms 用户使用通用处理程序,但这就是我目前所拥有的,我不知道如何从处理程序获取信息。而且,我必须为 Twilio 控制台提供一个 URL,但我不知道该提供什么 URL。我可以将它放在我的任何网站页面上,例如“mywebsite.com/??” “??”我不知道在哪里以及如何引用我的处理程序。

我在这里创建了处理程序“message.ashx”:

Public Class message : Implements IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    Context.Response.ContentType = "application/xml"
    Dim Body = Context.Request.Forms("Body")
    Dim response As New Twilio.TwiML.MessagingResponse()
    response.Message("You said: " & Body)
    Context.Response.Write(response.ToString())
 End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get
        Return False
    End Get
End Property

End Class

所以问题是,既然我已经有了这个处理程序,我如何获取要查看的 aspx 页面上的信息?我应该向 Twilio 控制台提供什么 url 以进行回复。我使用的是 C#,但答案可以是 C# 或 VB.NET,因为我可以翻译。

【问题讨论】:

  • 如果您熟悉 Web 表单,将通用处理程序 (.ashx) 添加到您的应用程序可能是最简单的。您应该在 Visual Studio 的“添加新项”菜单中看到它。那么 .ashx 文件所在的位置就是 URL 所在的位置。因此,如果您的 .ashx 位于 /somefolder/myhandler.ashx,则 URL 将为 yoursite.com/somefolder/myhandler.ashx。至于将信息放到 ASPX 页面上,您可能会将其保存在某个地方(例如数据库),然后在另一个页面上您会从那里读取它。
  • 您知道您可以将 ASP.NET MVC 添加到现有 ASP.NET 站点,即使该站点中已经有 Web 窗体。这可能更容易,并且它为您提供了升级站点其余部分的途径(因为 Web 表单几乎是一个死平台)。

标签: asp.net webforms twilio twilio-api


【解决方案1】:

在上面的 cmets 的帮助下,我能够解决这个问题。这是 aspx 网络表单中的 Httphandler。问题在于他们更新了他们的参考资料,因此使用正确的词会有所帮助,例如“MessagingResponse”与“Twilio.TwiML.MessagingResponse”。我还尝试将我的站点迁移到 MVC,并让它与 Twilio 一起使用,但迁移时遇到了其他问题。现在我只需要弄清楚如何实际接收用户发送的文本。 Twilio 文档在很多方面都非常模糊。

Public Class SmsHandler : Implements IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    context.Response.ContentType = "application/xml"        
    Dim response = New MessagingResponse
    response.Message("Hello World?")        
    context.Response.Write(response.ToString())
End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
    Return False
End Get
End Property

 End Class

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2017-10-08
    • 2013-03-25
    相关资源
    最近更新 更多